Алгоритм создания бота для Facebook Messenger — Колонка директора по digital-маркетингу «Атласа»

Директор по digital-маркетингу медицинского центра «Атлас» Виктор Бабичев написал для vc.ru колонку об алгоритме создания бота для мессенджера Facebook.

e8ff27b303b045.jpgДиректор по digital-маркетингу медицинского центра «Атлас» Виктор Бабичев

Для того, чтобы создать бота для мессенджера Facebook, необходимо обладать минимальными знаниями и навыками в программировании. На самом деле, все идет к тому, что боты будут создаваться в пару кликов, однако до этого еще далеко. Уже начинают появляться проекты, которые сильно упрощают разработку ботов, но чаще всего они решают далеко не все задачи. Поэтому давайте разберемся в вопрос, и напишем своего простого бота для мессенджера Facebook.

Подготовка

Начать нужно с окружения. Необходимо:

  • Открыть Terminal (консоль для ввода команд).
  • Установить git.
  • Зарегестрироваться на Heroku и указать, что дефолтный проект — Node.js.
  • Установить Node.js и npm.
  • Открыть удобный текстовый редактор.
  • Прочитать документацию Facebook.
  • Разобрать код и понять, что там за что отвечает.
  • Обновить знания в программировании, если нужно.

Начало

Сначала стоит определиться, что мы хотим написать. Наша задача — создать простого бота в Facebook, который будет автоматически отвечать на сообщения пользователя. Цель — разобраться, как всё устроено.

Нам нужна группа для теста. Пока структура такова, что бот в Facebook — это отдельная страница. То есть если вы хотите добавить бот к уже существующей группе, то вам нужно обрабатывать ситуацию, когда пользователь хочет написать администратору, а не общаться с ботом. Пример: страница издания CNN.

Создаем новое приложение, где указываем, что это App for Pages:

Заходим во вкладку Messenger, выбираем нужную группу, авторизуемся и записываем полученный токен. Он нам еще понадобится.

WebHooks

Теперь нужно настроить WebHooks — это адрес сайта, на который будут отсылаться ответы пользователя в режиме реального времени. Приложение должно обрабатывать запросы и отдавать результат. Сайт должен быть доступен по HTTPS, а верефицирующий токен должен совпадать с настройками в приложении.

Создадим такой сайт и пройдем процедуру верификации. Для этого придется чуть-чуть попрограммировать.

0861d389e6273d.png

Для удобства, мы выбрали платформу Node.js, так как примеры в Facebook Messenger Platform находятся там.

Выполните последовательность шагов:

  • Скачать проект с Github с примером бота: $ git clone git@github.com: babi4/vctest.git $ cd vctest.
  • Вставить в index.js свои pageToken — мы его запоминали ранее. verifyToken — придумайте любую фразу.
  • Запустить проект: $ npm install $ npm start.
  • Если все получилось, то по адресу http://localhost:5000/ будет доступен сайт.

Чтобы верефицировать адрес в WebHooks, нужно опубликовать сайт на публичном хостинге. Самый простой способ предлагает Heroku.

  • Устанавливаем https://toolbelt.heroku.com/.
  • Регистрируемся в аккаунте: $ heroku login.
  • Заходим в директорию проекта vctest и подготавливаем проект для деплоя: $ cd vctest $ heroku create.
  • Запоминаем адрес сайта.
  • Деплоим сайт (размещаем его на хостинге): $ git push heroku master.
  • Поздравляем, наш cайт готов: https://floating-dusk-67986.herokuapp.com/ Осталось подключить его настройках приложения в Facebook.
91be175e5d5f0c.png

Настраиваем WebHooks в приложении: добавляем к сгенеренному адресу сайта /webhook. В Verify Token вставляем фразу, которую придумали немного ранее и записали в код:

Если всё удалось, получится вот так:

bf7009ed6e9c55.png

Чтобы всё заработало, нужно создать подписку с группы — тогда все новые сообщения от пользователя начнут моментально обрабатываться. Нужно выполнить команду в терминале: $curl -ik -X POST «https://graph.facebook.com/v2.6/me/subscribed_apps…», куда вставить сгенеренный токен, который мы запоминали в начале материала.

Подписка оформлена, теперь бот начал работать.

85d5faf86e928d.png

Последний штрих: настроиваем Welcome screen. Это сообщение появляется, когда пользователь инициализировал общение с ботом.

Вставляем свои токены и ID паблика в welcome.sh и выполняем: $ bash welcome.sh.

bcbd27d2760733.png

Публикация бота

Все созданные боты должны проходить процедуру проверки на соответствия правилам Facebook. Только после одобрения соцсети пользователи смогут общаться с созданным ботом, поэтому нашу программу можно будет протестировать, только если выполнить все шаги из материла.

e34a42f6a2dc6c.png

Послесловие

Мне нравится идея ботов в мессенджерах — я уже опробовал уже десятки из них в Telegram, но ни одним не пользуюсь постоянно. Как вы думаете, дело в том, что для людей это еще «ново», или на самом деле они никому не будут нужны?

Присылайте колонки, соответствующие требованиям редакции, на secret@vc.ru

Твитнуть
Поделиться
Поделиться

В избр.

Ком.

Статьи по теме

©  vc.ru