Лого vc.ru

Алгоритм создания бота для Facebook Messenger

Алгоритм создания бота для Facebook Messenger

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

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

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

Подготовка

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

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

Начало

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

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

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

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

WebHooks

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

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

Для удобства мы выбрали платформу 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.

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

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

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

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

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

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

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

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

Послесловие

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

Присылайте собственные кейсы, в результате которых вам удалось заметно улучшить (или, наоборот, ухудшить) показатели проекта, на what@growthhacks.ru. Интересные эксперименты обязательно попадут на страницы рубрики Growth Hacks.

Статьи по теме
Где учиться программисту: 19 онлайн-курсов29 сентября 2014, 18:14
Популярные статьи
Показать еще
Комментарии отсортированы
как обычно по времени по популярности

Довольно просто. И хорошо.

Годно, ждем подобное про бота в телеграм

0

один из примеров для телеграма, когда вообще ничего писать не надо -https://habrahabr.ru/post/269819/
если писать, то кода очень мало, огромный плюс, что не надо отдельную процедуру одобрения проходить

полезно, спасибо!

0

"Зарегистрироваться"

Можно воспользоваться hook.io и не заморачиваться с деплоем, как минимум (пример создания бота для Телеграма unnikked.ga/build-telegram-bot-hook-io)

0

Часто бота по шаблону не хватает и нужна настройка руками.
Вот тут и нужна помощь в разработке бота.
Сейчас делаем такси и заказ еды. Кому надо похожее - пишите в скайп Alive2059

0

нужно написать бота, который напишет бота

да, и только node.js ?а как же php ?

0

на РНР тоже можно - буквально сразу либа для рнр появилась
github.com/pimax/fb-messenger-php

На РНР я создал часов за 5 с перекурами и кофе - но к сожелению он не заапрувлений

www.facebook.com/photo.php?fbid=10154831992014126&set=a.10150450592494126.456395.800799125&type=3&theater

Чат ботам сто лет в обед. То что внезапно до неандертальцев дошло что можно же ботов врубить и заработать, ничего не говорит для конечного пользователя.
К примеру в ФБ, бот это по сути как живой человек, тоесть вы должны создать с ним чат и общаться. А не так что он будет перехвватывать ваше общение и делать необходимые вам фишки(что как раз и надо). В итоге в ФБ бот это полное УГ и пользы от него 0. Так как это не более чем криворукий интерфейс к каким то сервисам. По сути консоль. А вы правда думаете что рядовой юзер будет юзать консоль?)

Но конечно же сейчас появиться 100500 стартапов которые делают ботов, где главный велью всего проекта это то что это бот. Как собственно было и с мессенджерами.

надо было пол года назад франшизу на ботов организовать. лайкбот или как-то так

И еще то что сверху это не бот. Как минимум из обозначения слова. Бот подразумевает работу вне области влияния человек, тоесть он выполняет не команды, а заложенную программу, и не управляется человеком. Например тот же поисковый бот.
А когда вы даете команду и получаете ответ то это интерфейс.

Спс за комменты для тлг.

0

А есть тема готовых шаблонов ? Для русских. Накидайте плиз.

0

Не интересно. Цукерман не платит 25k

Возможность комментирования статьи доступна только в первые две недели после публикации.

Сейчас обсуждают
Vasilina Gorovaya

У Planeta.ru с РВК будет в феврале как раз стартует шоу для технологических стартапов. Пока без "Первого канала", конечно. "Первому" надо еще доказать успешность формата - это раз. Да и объективно, многие ли предприниматели сегодня смотрят ТВ?

promo.planeta.ru/techbattle

Вице-премьер Шувалов предложил «Первому каналу» популяризировать малый бизнес с помощью аналога шоу «Голос»
0
Ali Biz

Готовятся к закону Яровой :)))

Акционеры «Мегафона» одобрили покупку контроля в Mail.Ru Group за $740 млн
0
Hoffman

Олег, я не Артём :) Видимо, слишком абсурдный (для вас) вопрос. Немного раскрою тему.

Накрутка подписчиков - чисто маркетинговая история. На "качество" продукта она вообще никак не влияет. Это такое же приукрашивание продукта (кол-во подписчиков в группе создает эффект масштабности, что ли), как и реклама по ТВ, которая обещает слишком много ("будь на вершине мира" при помощи новой зубной щетки и т.д.).

Пять важных отчётов для бизнес-аналитики проекта — опыт LPgenerator
1
Александр Стрельцов

Huh! Welcome to Web site about real anthropomorphous robot-avatar by search querry in Interntr: "The underwater anthropomorphous robot - avatar, or why the underwater robot must have legs", or by direct link: streltsovaleks.narod.ru :-)

«Телероботы займут рабочие места гораздо быстрее, чем кажется людям»: как роботы изменят рынок труда
0
Николай Бережняк

Вы ,наверное, в Bloodbath:Kavkaz не играли.

Минимализм и динамика: история разработки российского инди-платформера Standby
0
Показать еще