«
»
ViberСоциальные сети

Создайте полноценного бота Viber Chat за 6 простых шагов

Чат Bot очень популярен в наши дни. С Chat Bot вы можете подключаться к своим клиентам с помощью Deeper Interactions и развивать свой бизнес.

В этой статье я расскажу, как разработать Viber Chat Bot за 6 простых шагов с использованием PHP.

1. Создать публичный аккаунт в Viber

Чтобы начать, прежде всего, вы должны иметь учетную запись Viber Public. Если у вас нет публичной учетной записи, подайте заявку на публичную учетную запись на странице публичных учетных записей Viber .
Как только ваша заявка будет одобрена, вам будет отправлено сообщение с приглашением, чтобы начать создание вашей публичной учетной записи. Чтобы создать учетную запись, вам необходимо:
• Перезагрузить устройство.
• Войдите на главный экран Публичных счетов. Вы увидите кнопку Создать публичные аккаунты .
• Нажмите на кнопку, и начните!

2. Получить токен аутентификации

Токен аутентификации генерируется при создании публичной учетной записи и может быть просмотрен администратором учетной записи на экране «Изменить информацию» публичной учетной записи.

Пример токена : 455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8

Viber изменить данные аккаунта

Пример страницы детализации аккаунта для редактирования 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:

<?php $url = 'https://chatapi.viber.com/pa/set_webhook'; $jsonData='{ "auth_token": "your_auth_token", "url": "https://yoursite.com/webhook_page" }'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); $result = curl_exec($ch); curl_close($ch); ?>

После того, как мы вызовем 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 веб-крючка:

<?php $request = file_get_contents("php://input"); $input = json_decode($request, true); if($input['event'] == 'webhook') { $webhook_response['status']=0; $webhook_response['status_message']="ok"; $webhook_response['event_types']='delivered'; echo json_encode($webhook_response); die; } else if($input['event'] == "subscribed") { // when a user subscribes to the public account } else if($input['event'] == "conversation_started"){ // when a conversation is started } elseif($input['event'] == "message") { /* when a user message is received */ $type = $input['message']['type']; //type of message received (text/picture) $text = $input['message']['text']; //actual message the user has sent $sender_id = $input['sender']['id']; //unique viber id of user who sent the message $sender_name = $input['sender']['name']; //name of the user who sent the message // here goes the data to send message back to the user $data['auth_token'] = "4453b6ac1s345678-e02c5f12174805f9-95f29ebc06af09a8"; $data['receiver'] = $sender_id; $data['text'] = "The message to send to user"; $data['type'] = 'text'; //here goes the curl to send data to user $ch = curl_init("https://chatapi.viber.com/pa/send_message "); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); $result = curl_exec($ch); } ?>

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
Параметры публикации:

{ "auth_token": "455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8", "receiver": "01234567890A=", "type":"text", "text":"The message", "keyboard": { "Type": "keyboard", "BgColor": "#FFFFFF", "Buttons": [ { "Columns": 6, "Rows": 1, "BgColor": "#2db9b9", "BgMediaType": "gif", "BgMedia": "http://www.url.by/test.gif", "BgLoop": true, "ActionType": "open-url", "ActionBody": "www.tut.by", "Image": "www.tut.by/img.jpg", "Text": "Key text", "TextVAlign": "middle", "TextHAlign": "center", "TextOpacity": 60, "TextSize": "regular" }, { "Columns": 6, "Rows": 1, "BgColor": "#2db9b9", "BgMediaType": "gif", "BgMedia": "http://www.url.by/test.gif", "BgLoop": true, "ActionType": "open-url", "ActionBody": "www.tut.by", "Image": "www.tut.by/img.jpg", "Text": "<b>Key text</b>", "TextVAlign": "middle", "TextHAlign": "center", "TextOpacity": 60, "TextSize": "regular" } ] } }

Изображение для клавиатуры может быть:

Изображение для клавиатуры (меню)

Пример меню чата 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:

<b>Text Here</b> Bold <i>Text Here</i> Italic <u> Text Here </u> Underline Line Break <span style="color: #7f00ff;">X</span> Font Color

Получение информации об общедоступной учетной записи
Чтобы получить информацию об общедоступной учетной записи, вам нужно вызвать 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

Связанные записи
WordPressПлагиныСоциальные сети

Плагин Free Sliding Social Sharing Buttons

WordPressПлагиныСоциальные сети

Как: добавить Mashable Style Social Box Sharing Box в WordPress

WordPressПлагиныСоциальные сети

Как: добавить кнопки социальных сетей в WordPress - бесплатный плагин

WordPressПлагиныСоциальные сети

Официальный бесплатный плагин Facebook WordPress