Как создать бота в вайбере
В ноябре 2016 года Viber внедрил публичные аккаунты (Viber public account, или просто PA). С их выходом стало доступно и api, которое позволяет:
- вести переписку с пользователем
- проверять статус подписчиков (онлайн, оффлайн)
- получить информацию о конкретном подписчике
- вносить записи (посты) на свою страницу
Все это позволяет создать довольно неплохого бота, или же интегрировать бота в уже существующий проект, что вполне может улучшить качество взаимодействие с пользователями. Если вы уже создавали ботов для telegram или slack — то создать бота для Viber не составит большого труда.
Вступление
Еще некоторое время назад у меня появилась необходимость взаимодействовать с пользователями вайбера. Хотелось бы внедрить в свое приложение типовые диалоги с пользователями, а еще предоставлять "кнопочные диалоги" (в тех случаях когда пользователь видит несколько кнопок под чатом). Но на тот момент открытого (публичного) API для этого не было, и приходилось либо отказываться либо изворачиваться с граблями.
С релизом публичных аккаунтов (PA) ситуация изменилась, теперь мы можем создать более полноценное взаимодействие с "кнопочными диалогами" и нужными нам "конверсиями". Все это здорово, если не одно НО — нет SDK для PHP (ради справедливости, есть sdk для nodejs и python). Именно этот пробел я решил заполнить, и описать как можно создать простого бота на php, и за одно создать SDK.
Первые шаги
Открыть раздел "Публичные аккаунты" (иконка вверху справа — )
Нажать на "создать аккаунт" (иконка внизу справа — )
Для примера, мой ключ будет: 1111111111111111-2222222222222222-3333333333333333
Серверная часть
И зарегистрируем вебхук выполнив файл:
Можно немного улучшить функционал бота и добавить логгирование. Сделаем это с помощью monolog:
Термины и определения
Чат-бот Viber – программа Viber, реализованная через паблик-аккаунт, с которой пользователь может взаимодействовать для достижения какой-либо цели.
Паблик-аккаунты – специально созданные публичные аккаунты для общения и взаимодействия с клиентами (в том числе с помощью чат-ботов). Частным случаем паблик-аккаунтов являются паблик-чаты, где общается какая-либо группа людей.
Viber-ссылка – специальная ссылка для открытия контакта, чат-бота или другого ресурса в приложении Viber. Начинается с особого префикса viber://. Например: viber://pa?chatURI=hello2bot.
Создаем чат-бота
Создадим самого простого чат-бота для Viber. Почему самого простого? Потому что у новичков обычно возникает уйма вопросов. Естественно, такой простой чат-бот нужен для проверки того, что все работает. Тем более функционал простого бота можно расширять дальше по своему усмотрению.
Если вы сами хотите развернуть хостинг, то можно использовать связку: Apache + PHP + MySQL, но лучше воспользоваться услугами хостинг-провайдера, где установлено все необходимое, например, Timeweb.
Технология работы бота проста:
А теперь пошаговый процесс создания (из 13 шагов):
1. Переходим на сайт разработки. Предварительно у вас на смартфоне должно быть установлено приложение Viber.
2. Вводим номер телефона и авторизуемся.
3. Viber пришлет код подтверждения – вводим его и нажимаем «Дальше».
4. Нажимаем кнопку «Создать бот» и заполняем необходимые поля:
5. Ставим галочку о принятии соглашения и нажимаем «Create».
6. После этого вы получите токен для аутентификации Viber. Скопируйте и сохраните его.
8. Распакуйте и откройте файлы index.php и php из папки Viberbot.
9. В этих файлах необходимо изменить некоторые параметры.
В файле index.php необходимо изменить:
- AUTH_TOKEN на токен вашего паблик-аккаунта Viber.
- HelloBot на имя вашего бота, под которым он будет вам отвечать.
В файле set_webhook.php необходимо изменить:
- AUTH_TOKEN на токен вашего паблик-аккаунта Viber.
- WEBHOOK_URL на URL вашего вебхука, т.е. URL нахождения файла index.php на вашем хостинге.
11. Когда SSL-сертификат станет активным, заходим в панель хостинга Timeweb через файловый менеджер:
- Заходим к себе на сайт.
- Создаем новую папку для бота.
- Загружаем два файла.
13. Заходим в Viber на смартфоне. Последовательно нажимаем в меню: Еще –> Паблик аккаунты –> HelloBot.
Если паблик-аккаунт скрыт, нажимаем «Показать».
Проверяем результат
Нами был успешно создан и запущен чат-бот для Viber. Теперь можно подумать о расширении его функционала. Документацию Viber REST API можно прочитать на официальном сайте мессенджера.
Чат Bot очень популярен в наши дни. С Chat Bot вы можете подключаться к своим клиентам с помощью Deeper Interactions и развивать свой бизнес.
В этой статье я расскажу, как разработать Viber Chat Bot за 6 простых шагов с использованием PHP.
1. Создать публичный аккаунт в Viber
2. Получить токен аутентификации
Токен аутентификации генерируется при создании публичной учетной записи и может быть просмотрен администратором учетной записи на экране «Изменить информацию» публичной учетной записи.
Пример токена : 455a0f2c05b4fe54-cb4e33d3200fbbae-95f29ebc06af09a8
Пример страницы детализации аккаунта для редактирования Viber
3. Настройте webhook
Настройка webhook будет выполнена путем вызова API set_webhook с действительным и сертифицированным URL.
После отправки запроса set_webhook Viber отправит обратный вызов в webhook, чтобы проверить его доступность и вернет ответ пользователю.
Примечание . Перед отправкой запроса в API set_webhook нам необходимо иметь код для обработки обратного вызова из Viber по нашему URL-адресу webhook. Пример кода PHP приведен в этой статье.
Чтобы сделать запрос POST к API set_webhook , мы можем использовать cURL или такие инструменты, как POSTMAN. Вот пример кода PHP:
Теперь нам нужно дать ответ как
status = результат действия (0 для успеха, номер ошибки для ошибок)
status_message = Ok или причина
ошибки event_types = доставлено или замечено (еще не реализовано)
Это установит URL-адрес webhook . Теперь, когда происходит событие, связанное с публичной учетной записью, обратный вызов отправляется на URL-адрес webhook, и нам нужно обрабатывать события в URL-адресе webhook, которые обсуждаются ниже.
Код для URL веб-крючка:
Изображение для клавиатуры может быть:
Пример меню чата Viber
Текст кнопки может поддерживать некоторые теги HTML:
где auth_token – строка токена, предоставленная Viber при создании публичной учетной записи.
Если вы хотите создать чат-бота для Facebook, Telegram или Slack, у вас, как правило, есть выбор: вы можете использовать одну из платформ разработки ботов без кода или написать его самостоятельно.
Но если вам нужен бот для Viber, ключевые платформы на данный момент ничем вам не помогут.
Придётся создавать его самостоятельно, с использованием любого языка программирования, с помощью которого можно послать POST запрос. В этой статье мы будем использовать PHP.
Перед тем, как привязать webhook, надо подумать, какие дополнительные события нужны будут нашему боту, и добавить их в наш запрос. Это могут быть следующие события:
Обязательные события, например, ”message”, придут в любом случае, на них специально подписываться не надо.
Можно написать скрипт, который будет выполнять необходимый запрос, но мы сделаем это через Postman, многофункциональное приложение для работы с API.
Вставляем наши данные во вкладке Headers.
Во вкладке Body вставляем ссылку на бота.
В случае, если вы не пользуетесь Postman, а пишете код в PHP, привязка webhook будет выглядеть так:
С помощью следующего кода мы записываем в текстовый файл входящую информацию от Viber. Это облегчит будущую разработку.
file_put_contents ( "viber.txt" , file_get_contents ( "php://input" ) ) ; $ message [ 'text' ] = "We work for you from Monday till Friday: 9AM - 6PM" ; $ message [ 'text' ] = "We work for you from Monday till Friday: 9AM - 6PM" ;Наш демо-бот готов!
Так он выглядит в Viber.
Что с ним пока нельзя делать — это создать глубокую ссылку на него (с использованием URI аккаунта, как мы писали выше) и найти его во вкладке с ботами Viber (discover screen) – ни среди ботов, представленных в подборках, ни при помощи поиска. Для того, чтобы ваше детище появилось там, нужно получить эппрув от Viber, заполнив «форму публикации бота» (есть в документации). У Viber целая куча предрассудков требований, которым бот должен удовлетворять для утверждения и публикации, включая «уникальную ценность» и хотя бы минимальное понимание свободного ввода пользователя.
Подробнее о публикации бота расскажем в будущем.
Роман Брязгалов, php-разработчик, специалист по диалоговым системам Singularika
Читайте также: