Як налаштувати відправку Viber/SMS через Infobip
Infobip дозволяє відправляти текстові повідомлення через Viber та SMS. Це корисно для автоматизації комунікацій із клієнтами, наприклад, для підтвердження замовлень, сповіщень про акції, або іншої важливої інформації.
📖 Документація: Детальніше про Infobip API читайте на офіційному сайті.
Передумови
- Активний обліковий запис Infobip
- API-ключ від Infobip
- Зареєстрований Sender Name для Viber (якщо використовуєте Viber)
Отримання API ключа
- Увійдіть у панель управління Infobip
- Перейдіть до розділу API Keys
- Створіть новий API-ключ
- Скопіюйте отриманий ключ
Налаштування Sender Name для Viber
- У панелі Infobip перейдіть до розділу Viber Sender Names
- Зареєструйте унікальне ім'я відправника (зазвичай це назва вашої компанії)
- Очікуйте на схвалення (може зайняти деякий час)
Створення action для Infobip
Для відправки повідомлень через Infobip потрібно створити кастомний action через Action Jail.
Приклад коду action
const axios = require('axios');
// Константи для налаштування API
const API_KEY = 'YOUR_API_KEY'; // Ваш API-ключ Infobip
const SENDER_NAME = 'DemoCompany'; // Ім'я відправника для Viber
const BASE_URL = 'https://api.infobip.com'; // Базовий URL для Infobip
const API_PATH = '/viber/2/messages'; // Шлях для відправлення повідомлень
const action_infobip_send_message = async function() {
const j = this.getCurrentStateJSON();
if (!j || typeof j !== 'object') {
console.error("Error: JSON data is invalid or not an object.");
return "error";
}
const message = (j.message || '').trim();
const to = (j.to || '').trim();
if (!message || !to) {
console.error("Error: 'message' or 'to' is missing in the JSON data.");
return "error";
}
const options = {
method: 'POST',
url: `${BASE_URL}${API_PATH}`,
headers: {
'Authorization': `App ${API_KEY}`,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
data: {
messages: [
{
sender: SENDER_NAME,
destinations: [{ to }],
content: {
text: message,
type: "TEXT"
}
}
]
}
};
try {
const response = await axios(options);
console.log("Response from Infobip:", response.data);
return "success";
} catch (error) {
console.error("Error sending message:", error.response?.data || error.message);
return "error";
}
};
module.exports = action_infobip_send_message;
Використання в сценарії
Підготовка даних
Перед викликом action встановіть змінні в state:
{
"message": "Ваше замовлення #123 відправлено!",
"to": "380971234567"
}
Параметри:
message— текст повідомлення, який потрібно надіслатиto— номер телефону отримувача у міжнародному форматі (без знаку+)
Обробка результату
Успіх (success):
- Якщо повідомлення успішно відправлено, action повертає
"success" - У сценарії можна додати наступні дії (логікування, оновлення статусу тощо)
Помилка (error):
- Якщо виникла помилка, action повертає
"error" - У сценарії слід передбачити обробку помилок (повідомлення адміністратора, повторна спроба тощо)
Відправка SMS через Infobip
Для відправки SMS використовується інший endpoint:
const smsOptions = {
method: 'POST',
url: `${BASE_URL}/sms/2/text/single`,
headers: {
'Authorization': `App ${API_KEY}`,
'Content-Type': 'application/json'
},
data: {
from: SENDER_NAME,
to: to,
text: message
}
};
Обмеження
- Viber повідомлення мають обмеження на довжину тексту
- Номер телефону повинен бути в міжнародному форматі
- Sender Name повинен бути зареєстрований в Infobip
- Rate limiting може застосовуватися залежно від тарифного плану Infobip
Пов'язані статті
- Infobip API Documentation — офіційна документація Infobip
- Створити кастомний action — створення кастомних actions через ActionJail