Получение входящих событий API
Входящие события api можно получать в режиме реального времени через websockets, используя протокол pusher-api.
Доступно множество готовых библиотек на разных языках программирования.
Ниже приводится пример подключения через библиотеку pusher-js.
1. Подключаем библиотеку pusher-js
<script src="https://js.pusher.com/7.0/pusher.min.js"></script>
2. Задаем настройки подключения
let pusher = new Pusher('ChatsAppApiProdKey', {
wsHost: 'api.chatapp.online',
wssPort: 6001,
disableStats: true,
authEndpoint: 'https://api.chatapp.online/broadcasting/auth',
auth: {
headers: {
'Authorization': '$2y$10$l.SQOBOaqz3ZU65JAlEK4ughTCzIbcVGpJIUNTVnGpaKOYOd4M' // персональный токен, полученный методом https://api.chatapp.online/docs/#tokensmake
}
},
enabledTransports: ['ws'],
forceTLS: true
});
3. Подключаемся к приватному каналу
let channel = pusher.subscribe('private-v1.licenses.1229.messengers.grayWhatsApp');
// или
let channel = pusher.subscribe('private-v1.licenses.1229.messengers.telegram');
Примечание: Один мессенджер в одной лицензии - это один канал.
4. Слушаем входящие события
// входящее/исходящее сообщение
channel.bind('message', (data) => {
console.log(data);
});
// статус отправленного сообщения
channel.bind('messageStatus', (data) => {
console.log(data);
});
// добавлена/удалена метка для чата
channel.bind('chatTag', (data) => {
console.log(data);
});
Доступные события:
- message (входящее/исходящее сообщение)
- messageStatus (статус отправленного сообщения)
- chatTag (добавлена/удалена метка для чата)
- chatConversation (открыто 24-х часовое окно (доступно только для WhatsApp))
Полный код примера:
<script src="https://js.pusher.com/7.0/pusher.min.js"></script>
<script>
window.onload = function() {
let pusher = new Pusher('ChatsAppApiProdKey', {
wsHost: 'api.chatapp.online',
wssPort: 6001,
disableStats: true,
authEndpoint: 'https://api.chatapp.online/broadcasting/auth',
auth: {
headers: {
'Authorization': '$2y$10$l.SQOBOaqz3ZU65JAlEK4ughTCzIbcVGpJIUNTVnGpaKOYOd4M' // персональный токен, полученный методом https://api.chatapp.online/docs/#tokensmake
}
},
enabledTransports: ['ws'],
forceTLS: true
});
let channel = pusher.subscribe('private-v1.licenses.1229.messengers.grayWhatsApp');
channel.bind('message', (data) => {
console.log(data);
});
channel.bind('messageStatus', (data) => {
console.log(data);
});
channel.bind('chatTag', (data) => {
console.log(data);
});
let channel2 = pusher.subscribe('private-v1.licenses.1229.messengers.telegram');
channel2.bind('message', (data) => {
console.log(data);
});
channel2.bind('messageStatus', (data) => {
console.log(data);
});
channel2.bind('chatTag', (data) => {
console.log(data);
});
};
</script>
Пример объекта message (входящее/исходящее сообщение)
{
"queue": "Telegram.Broadcast.Message",
"payload": {
"data": [
{
"id": 696,
"fromApi": false,
"fromMe": false,
"side": "in",
"time": 1637319282,
"isForwarded": false,
"type": "text",
"message": {
"text": "Test",
"caption": "",
"file": null
},
"quotedMessage": null,
"fromUser": {
"id": 1480675234,
"username": "username_test",
"name": "Test Test",
"phone": "7000000000"
},
"chat": {
"id": "private-1480005234h1360003129730259258",
"hash": "h1360003129730259258",
"type": "private",
"phone": "7000000000",
"username": "username_test",
"name": "Test Test",
"image": "https://telegramclientapi.app24.online/GetDialogPhoto/3bf70000-941b-4e19-bc31-56e150a0e900"
},
"fromApp": null
}
],
"meta": {
"type": "message",
"licenseId": 1229,
"messengerType": "telegram"
}
}
}
Пример объекта messageStatus (статус отправленного сообщения)
{
"queue": "Telegram.Broadcast.Message.Status",
"payload": {
"data": [
{
"id": 42213,
"type": "delivered", // delivered|viewed|failed
"chat": {
"id": "private-1480000234h1367520000730259258",
"hash": "h1367520000730259258",
"type": "private",
"phone": "70000000000",
"username": "username_test"
},
"fromApp": {
"id": "app_123_1",
"tracking": null
},
"error": null
}
],
"meta": {
"type": "messageStatus",
"licenseId": 1229,
"messengerType": "telegram"
}
}
}
Пример объекта chatTag (добавлена/удалена метка для чата)
{
"queue": "Telegram.Broadcast.ChatTag",
"payload": {
"data": [
{
"type": "add", // add|destroy
"tag": {
"id": 29,
"name": "test 1",
"color": "#123df55",
"sort": 100,
"category": {
"id": 9,
"name": "test 1",
"sort": 100
}
},
"chat": {
"id": "group-54911000655"
}
}
],
"meta": {
"type": "chatTag",
"licenseId": 1229,
"messengerType": "telegram"
}
}
}
Пример объекта chatConversation (открыто 24-х часовое окно (доступно только для WhatsApp))
{
"queue": "WhatsApp.Broadcast.ChatConversation",
"payload": {
"data": [
{
"conversation": {
"id": "ccb637d17ba3aced8051abc263bd72e4",
"type": "BIC",
"startTime": 1644500500,
"endTime": 1644586900
},
"chat": {
"id": "70000000000"
}
}
],
"meta": {
"type": "chatConversation",
"licenseId": 1229,
"messengerType": "WhatsApp"
}
}
}
- Роботы
- Основные параметры
- Отправка сообщения в мессенджер
- Есть ли мессенджер на телефоне
- Отправка файла
- Отправка CRM документа
- Webhook сообщений WhatsApp
- Отправить шаблон сообщения WABA
- Выбор мессенджера и лицензии
- Добавление меток диалогов
- Проверка телефона
- Переименование чата
- Триггеры
- Вопросы и ответы
- О приложении BotApp24
- Установка BotApp24
- Обучение чат-бота
- Создание чат-бота
- Подключение чат-бота к Битрикс24
- Добавление бота в Открытую линиию
- Проверка чат-бота после установки
- Сбор данных из DialogFlow в Битрикс24
- Ответ чат-бота на звонок WhatsApp
- Настройка чат-бота для сбора отзывов
- Настройка регулярных выражений
- Метасимволы для регулярных выражений
- Вопросы и ответы BotApp24
- Подключение ChatApp API
- Получение входящих событий API
- Встраивание через iFrame