Как создать чат-бота для Facebook Messenger?
Бота для Facebook Messenger можно создать при помощи инструментов (на платформах разработки) или написать с нуля на любом языке программирования, с помощью которого можно послать POST запрос.
Мы рассмотрим и процесс написания бота с нуля (с примером на php ), и создание бота без кода, с помощью платформы разработки.
Подготовка: создание страницы и приложения
Чат-бот в Facebook Messenger обязательно привязан к странице, поэтому создаём публичную страницу. Можно создать отдельную страницу заранее, привязать бота к существующей публичной странице, или создать её позже, когда нужно будет прикреплять приложение. Если вы хотите создать чат-бота при помощи платформы, на этом можно считать подготовку законченной и переходить к работе на платформе (а в нашей статье — переходить к разделу Создание чат-бота без кода, с помощью платформ разработки).
Если мы пишем бота сами, нужно создать приложения на сайте developers.facebook.com для доступа к API Messenger.
Для этого нужно нажать кнопку «+Добавить новое приложение» («Add a new app») в разделе «мои приложения» на developers.facebook.com.
Заполняем форму (название бота и ваш электронный адрес), переходим в приложение.
В панели слева нажимаем «+Добавить продукт» («Add Product») и выбираем Messenger.
Далее в продукте Messenger находим блок Generate token и выбираем страницу, на которой должен работать бот. Получаем токен — его нужно сохранить, он будет нужен в дальнейшем для работы с API
Чтобы бот знал, что ему что-то пишут, нужно подписаться на события бота.
Там же, в продукте Messenger в панели приложения ищем блок webhooks и нажимаем на Setup Webhooks (перед этим у вас на сервере должен быть размещен скрипт который и будет получать все события и отправлять ответы на них.). Важно: сервер должен иметь SSL сертификат, без него вы не подпишитесь на события.
Заполняем форму, указав адрес бота и отметив галочками нужные события (подробно о каждом из них можно прочитать в документации).
Что значит “Verify Token”? Это поле, которое придет на ваш сервер в json, и позволит обезопасить процесс подписки на события: другой разработчик не сможет подписать ваш скрипт на события своего бота, если он не знает ваш “Verify Token”
Как происходит подписка?
Facebook при отправке вышеуказанной формы посылает запрос на ваш скрипт, в котором есть поля: hub_verify_token и hub_challenge Hub_challange — это то поле, которое должен вернуть ваш скрип в ответ на запрос. Hub_verify_token — для того, чтоб вы могли проверить, от вас поступил этот запрос или нет.
Пример кода для процесса подписки.
После удачной подписки появляется зеленая надпись — это значит, что все отлично. Теперь нужно только выбрать нашу страницу:
Разработка бэкенда
Теперь перейдем к нашему скрипту:
- получаем данные о событии
- выбираем нужный ответ
- отправляем запрос на Facebook
Получаем необходимые поля нашего json события, в данном случае ID, сообщение, кнопку и быстрый ответ.
Так выглядит диалог в итоге:
Публикация
Пока приложение не прошло модерацию и не опубликовано , чат-бот будет работать только для администраторов/разработчиков/тестировщиков, которые были указаны в разделе «Роли» в приложении.
Необходимо заполнить форму на сайте developers.facebook.com и отправить на ревью для модератора Facebook.
Перед получение подтверждения ( approval ) нужно заполнить все поля в настройках приложения:
Зайдите на developers.facebook.com/apps , в ваше приложение, во вкладку Messenger и найдите раздел App Review for Messenger . Нажмите кнопку «Добавить к заявке» для каждого разрешения, которое нужно предоставить боту.
Есть три типа разрешений
pages_messaging — для обмена сообщениями с пользователями в рамках 24-часового окна
pages_messaging_subscriptions — для отправки сообщений пользователю после 24 часов неактивности
pages_messaging_phone_number — возможность отправлять сообщения по номеру телефона
Третье разрешение платное — 99$ для каждого бота.
В разделе «Текущая заявка» будут показаны добавленные разрешения.
Нажав кнопку «Редактировать заметки» рядом с каждым запрошенным разрешением, вы увидите диалог и форму для отправки дополнительной информации. Эту форму необходимо заполнить.
Для получения разрешения pages_messaging_subscriptions нужно снимать скринкаст работы вашего бота.
Процесс утверждения длится до 5 рабочих дней.
Не забываем установить переключатель в положение «Опубликовать бота».
Создание чат-бота без кода, с помощью платформ разработки
Все популярные платформы разработки предлагают создать чат-бота в Facebook Messenger: Chatfuel, ManyChat, Motion.ai, Flow.xo, Botsify Платформы значительно облегчают и ускоряют создание и запуск чат-бота, особенно после того, как вы разобрались с интерфейсом платформы.
- Во-первых, они берут на себе бэкенд, то есть, реализацию процесса общения бота с пользователем. Создателю чат-бота необходимо сконструировать желаемый ход взаимодействия, без кодирования, как правило, при помощи простого и интуитивно понятного интерфейса. Визуально это может быть представлено по-разному, но на всех платформах создатель «собирает» диалог, выбирая нужные элементы интерфейса (описанные выше), как бы строя домик из кубиков Lego разной формы, и указывая связи между ними. В motion.ai это сделано как drag and drop – вы берёте элементы и перетаскиваете их из своеобразной «палитры» на «холст», как будто рисуете на листе бумаги. В Chatfuel – вы можете добавлять и просматривать блоки в левой части экрана, а редактируете каждый отдельный блок — в правой. В Manychat есть Basic Builder, где предлагается набор заготовок сообщений для бота, даже с советами по содержанию («В первом сообщении расскажите полезную информацию, и только затем упомяните свой продукт»), но можно перейти и в визуальный конструктор (Flow Builder). Подробнее о каждой платформе мы расскажем в из следующих статьях.
- Во-вторых, платформы разработки берут на себя серверную часть (установку Webhook и привязку чат-бота к странице на Facebook) – это всё осуществляется одним нажатием кнопки.
- В-третьих, и в случае с Facebook Messenger это особенно важно — использование платформ позволяет избежать долгой и нудной процедуры публикации (получения утверждения (review and approval) от модераторов Facebook). Платформы публикуют своё приложение (уже получившее approval), а все боты, созданные на их основе, работают через него. Однако, если вы захотите добавить своего бота во вкладку Discover в Messenger, нужно пройти официальную процедуру публикации.
Что делать с этим ботом дальше?
Можно делиться чат-ботом при помощи ссылки или Messenger кода, а также передать его на добавление во вкладку Discover.
Можно пользоваться платными способами распространения бота: размещать рекламу в Facebook, Instagram и Messenger, а также рассылать оплаченные сообщения.
Последнее обновление Facebook Messenger — чат плагин — позволяет интегрировать бота на сайт.
Вадим Шарафин, php-разработчик, специалист по диалоговым системам Singularika