Чат Bot очень популярен в наши дни. С Chat Bot вы можете подключаться к своим клиентам с помощью Deeper Interactions и развивать свой бизнес.
В этой статье я расскажу, как разработать Viber Chat Bot за 6 простых шагов с использованием PHP.
1. Создать публичный аккаунт в Viber
Чтобы начать, прежде всего, вы должны иметь учетную запись Viber Public. Если у вас нет публичной учетной записи, подайте заявку на публичную учетную запись на странице публичных учетных записей Viber .
Как только ваша заявка будет одобрена, вам будет отправлено сообщение с приглашением, чтобы начать создание вашей публичной учетной записи. Чтобы создать учетную запись, вам необходимо:
• Перезагрузить устройство.
• Войдите на главный экран Публичных счетов. Вы увидите кнопку Создать публичные аккаунты .
• Нажмите на кнопку, и начните!
2. Получить токен аутентификации
Токен аутентификации генерируется при создании публичной учетной записи и может быть просмотрен администратором учетной записи на экране «Изменить информацию» публичной учетной записи.
Пример токена : 455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8
Пример страницы детализации аккаунта для редактирования Viber
3. Настройте webhook
Как только токен будет получен, вы сможете настроить webhook своей учетной записи . Этот веб-крючок будет использоваться для получения обратных вызовов и пользовательских сообщений от Viber.
Настройка webhook будет выполнена путем вызова API set_webhook с действительным и сертифицированным URL.
После отправки запроса set_webhook Viber отправит обратный вызов в webhook, чтобы проверить его доступность и вернет ответ пользователю.
Примечание . Перед отправкой запроса в API set_webhook нам необходимо иметь код для обработки обратного вызова из Viber по нашему URL-адресу webhook. Пример кода PHP приведен в этой статье.
Вызовите запрос POST к этому API:
https://chatapi.viber.com/pa/set_webhook
Параметры публикации:
{
"auth_token": "455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8",
"url": "https://mysite.com/webhook_page",
"event_types": ["delivered", "seen"]
}
auth_token = Строка токена, предоставленная Viber при создании PA.
url = URL веб-крючка PA для получения обратных вызовов и сообщений от пользователей (должен использовать SSL, например, https)
event_type = (необязательно) Указывает типы событий Viber, о которых владелец PA хотел бы получать уведомления. Значения по умолчанию: [«доставлено», «увидено»]
Чтобы сделать запрос POST к API set_webhook , мы можем использовать cURL или такие инструменты, как POSTMAN. Вот пример кода PHP:
После того, как мы вызовем set_webhook api, Viber отправит обратный вызов на URL-адрес webhook, чтобы подтвердить его доступность, т.е. https://mysite.com/webhook_page в приведенном выше примере. Формат данных обратного вызова следующий:
{
"event":"webhook",
"timestamp":1457764197627,
"message_token":4912661846655238145
}
событие = тип обратного вызова – какое событие вызвало обратный вызов. Возможное значение – webhook.
timestamp = время события, которое вызвало обратный вызов
message_token = уникальный идентификатор сообщения
Теперь нам нужно дать ответ как
{
"status": 0,
"status_message": "ok",
"event_types": ["delivered", "seen"] //Not yet implemented
}
status = результат действия (0 для успеха, номер ошибки для ошибок)
status_message = Ok или причина
ошибки event_types = доставлено или замечено (еще не реализовано)
Это установит URL-адрес webhook . Теперь, когда происходит событие, связанное с публичной учетной записью, обратный вызов отправляется на URL-адрес webhook, и нам нужно обрабатывать события в URL-адресе webhook, которые обсуждаются ниже.
Код для URL веб-крючка:
4. Получить сообщение
Всякий раз, когда пользователь отправляет сообщение в общедоступную учетную запись в чате 1-к-1, в URL-адрес webhook отправляются следующие данные обратного вызова.
{
"event": "message",
"timestamp": 1457764197627,
"message_token": 4912661846655238145,
"sender":
{
"id": "01234567890A=",
"name": "yarden",
"avatar": "http://avatar_url"
},
"message":
{
"type": "text",
"text": "a message to the service",
"media": "http://download_url",
"location":
{
"lat": 50.76891,
"lon": 6.11499},
"tracking_data": "tracking data"
}
}
}
событие = в случае сообщения, отправленного пользователем, значением события будет
отметка времени сообщения = время события, вызвавшего обратный вызов
message_token = уникальный идентификатор
отправителя сообщения = сведения об отправителе (идентификатор, имя, аватар)
сообщение = подробности сообщения, такие как текст, медиа ( если есть) и так далее
Таким образом, мы можем получить сообщение от пользователя и соответствующее сообщение может быть отправлено пользователю, что будет обсуждаться ниже.
5. Отправить сообщение
Чтобы отправить сообщение пользователю, нам нужно вызвать запрос Post на send_message api, как показано ниже:
Отправка текстового сообщения:
URL: https://chatapi.viber.com/pa/send_message
Параметры публикации:
{
"auth_token": "455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8",
"receiver": "01234567890A=",
"type": "text",
"text": "a message from pa"
}
auth_token = Строка токена, предоставленная Viber при создании публичной учетной записи.
получатель = уникальный идентификатор пользователя viber, которому отправляется сообщение.
тип = тип сообщения («текст» для текстовых сообщений)
текст = текстовое сообщение для отправки
Отправка изображений:
URL: https://chatapi.viber.com/pa/send_message
{
"auth_token": "455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8",
"receiver": "01234567890A=",
"type": "picture",
"text": "Photo description",
"media": "http://www.images.com/img.jpg",
"thumbnail": "http://www.images.com/thumb.jpg"
}
auth_token = Строка токена, предоставленная Viber при создании публичной учетной записи.
получатель = уникальный идентификатор пользователя viber, которому отправляется сообщение
тип = тип сообщения («картинка» для изображения)
текст = описание фотографии (может быть нулевым, если не требуется)
media = URL-адрес изображения (поддерживается только JPEG)
thumbnail = уменьшенное изображение URL (поддерживается только JPEG)
Точно так же мы также можем отправлять файловые сообщения.
6. Отправить клавиатуру (Меню)
API общедоступной учетной записи позволяет отправлять пользовательскую клавиатуру с помощью API send_message, чтобы предоставить пользователю набор предопределенных ответов или действий. Клавиатура может быть прикреплена к любому типу сообщения или отправлена на него. После получения клавиатура будет отображаться пользователю вместо родной клавиатуры устройства.
К сообщению можно прикрепить клавиатуру следующим образом:
URL: https://chatapi.viber.com/pa/send_message
Параметры публикации:
Изображение для клавиатуры может быть:
Пример меню чата Viber
Все параметры такие же, как и при отправке обычного текстового сообщения, за исключением клавиатуры param .
Массив кнопок содержит массив кнопок согласно требованию.
Общие параметры клавиатуры:
– Тип : Обязательный. Тип отображения клавиатуры (в настоящее время доступна только «клавиатура»).
– Кнопки : обязательно. Это массив, содержащий все кнопки клавиатуры по порядку.
– BgColor : необязательно. Цвет фона клавиатуры должен быть задан шестнадцатеричным значением.
– DefaultHeight : необязательно. Возможные значения: true или false.
Параметры массива кнопок
Следующие параметры могут быть определены для каждой кнопки в массиве «кнопок» отдельно. Каждая кнопка должна содержать хотя бы один из следующих необязательных параметров: текст, BgMedia, изображение, BgColor.
– Столбцы: ширина кнопки в столбцах. возможные значения 1-6.
– Rows: высота кнопки в строках. возможные значения 1 и 2.
– BgColor: цвет фона для предоставления шестнадцатеричного значения.
– BgMediaType: тип фонового носителя. Возможные значения: картинка или гифка.
– BgMedia: URL-адрес для фонового мультимедиа (изображение или рисунок)
– BgLoop: возможные значения: true или false.
– ActionType: тип действия при нажатии на кнопку. Возможные значения: reply или open-url. reply отправит ответ как обычное сообщение, а open-url откроет ссылку.
– ActionBody: текст для ответа, если ActionType является ответом, и ссылка для открытия, если ActionType имеет открытый URL-адрес.
– Изображение: URL-адрес изображения для размещения поверх фона.
– Текст: текст для отображения в кнопке.
– TextVAlign: вертикальное выравнивание текста. Возможные значения: верх или середина, или снизу.
– TextHAlign: горизонтальное выравнивание текста. Возможные значения: слева или по центру или справа.
– TextOpacity: непрозрачность текста. Возможные значения 1-100.
– TextSize: размер текста. Возможные значения: маленький или обычный или большой.
Текст кнопки может поддерживать некоторые теги HTML:
Получение информации об общедоступной учетной записи
Чтобы получить информацию об общедоступной учетной записи, вам нужно вызвать get_account_info api следующим образом:
url: https://chatapi.viber.com/pa/get_account_info
Параметры публикации:
{
"auth_token": "455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8"
}
где auth_token – строка токена, предоставленная Viber при создании публичной учетной записи.
Таким образом, вы можете разработать простой чат-бот для Viber, используя PHP. Более того, это отправная точка для построения сложных ботов. Вы должны попытаться реализовать свои собственные ответы на различные сообщения.
Обновления . Получив множество запросов от читателей, мы расширили чат-бота Viber, добавив в него такие структурные сообщения, как меню клавиатуры, изображения, ссылки и так далее. Пожалуйста, просмотрите статью ниже, чтобы найти живой пример.
Отправка структурированного сообщения и меню клавиатуры в чат-бот Viber
Источник записи: https://thedebuggers.com