8

Я начинаю с API платформы Messenger. Я хочу сделать простой Messenger Chatbot. Here is tutorial I follow.Как тестировать ботов в Messenger? Локальные webhooks

Как вы видите, для начала мне нужно настроить webhook (шаг 2). Итак, в основном: веб-сервер, который предоставляет некоторый REST API и отправляет некоторые данные обратно. Проблема заключается в следующем: facebook требует, чтобы я предоставил реальный, существующий URL-адрес приложения, который работает в настоящее время в Интернете. Итак, нужно ли загружать мой код на сервер каждый раз, когда я что-то меняю? Могу ли я как-то проверить его локально (на моем локальном хосте)? Как я могу проверить поведение моего бота?

+0

Как Facebook пинговать сервер, который в автономном режиме? – WizKid

+0

Существует аналогичный вопрос, поэтому вы можете найти ответ здесь: http://stackoverflow.com/questions/36674079/how-to-do-facebook-messenger-bot-development-locally – fritak

+0

@WizKid Нет необходимости подключать фейсбук это само по себе. Я думал о каком-то эмуляторе или поддельном, локальном экземпляре, который будет доступен только для тестирования. – Piotrek

ответ

24

Существует несколько сервисов, которые вы можете использовать для публикации вашего веб-сервера на локальном хосте для публики. Два варианта: localtunnel и ngrok.

Пример (из QuickStart localtunnel в) о том, как вы могли бы сделать это, учитывая, что ваш веб-сервер работает на http://localhost:8000/ будет выглядеть следующим образом:

Установка localtunnel из НПХ:

npm install -g localtunnel 

Запроса туннель на локальный сервер:

lt --port 8000 

Это будет генерировать ссылку, форм https://foo.localtunnel.me вы можете использовать, чтобы получить доступ к вашему localhost из Интернета. Одна из приятных особенностей заключается в том, что вы автоматически получаете https, поэтому Facebook не даст вам ошибку «Ошибка сертификата SSL». Localtunnel или ngrok также хорошо подходят для совместной работы с другими пользователями.

Обратите внимание, что URL-адрес localtunnel действителен только при условии, что соединение живет, поэтому вам нужно будет обновить URL-адрес Facebook, если соединение закончится.

+0

Я пытаюсь использовать localtunnel, но он говорит «Недопустимое имя хоста» после попытки открыть заданный URL-адрес – Piotrek

+0

Нужно ли мне что-то настраивать в окнах? Возможно, брандмауэр – Piotrek

+0

Хорошо, я решил проблему. Некоторые проблемы с IIS Express. Спасибо за помощь;) – Piotrek

14

Я создал библиотеку, которая пытается решить эту проблему! С fb-local-chat-bot вы можете легко протестировать своего бота в автономном режиме. Библиотека также упрощает тестирование. Если вы заинтересованы, безусловно, проверить его

https://github.com/spchuang/fb-local-chat-bot

Demo:

3

вы можете использовать ngrok, чтобы проверить мессенджер бота в локальном хосте. Вы можете загрузить его по адресу: https://ngrok.com/download

при выполнении ngrok он создаст безопасную ссылку, которая может использоваться в качестве конечной точки в webhook.

Вы также можете проверить подробную информацию о состоянии каждого запроса и ответа ngrok через

http://localhost:4040/inspect/http

Позже, когда вы закончите, вы можете развернуть код для обеспечения сервера.

Вы можете найти более подробную информацию о том, как создать простой чат бота по ссылке ниже:

How to build a basic chat bot on facebook messenger

1

Вы можете развернуть серверные службы на Heroku бесплатно. Он обеспечивает публичный DNS с помощью RSA.

+4

Его главная проблема связана не с хостингом, а с загрузкой кода всякий раз, когда он вносит какие-либо изменения в него. Это занимает много времени, в то время как вы делаете небольшие изменения, которые необходимо протестировать. –

0

Если вы не можете использовать ngrok по какой-либо причине (например, веб-узел маршрутизации для умножения машин-разработчиков). попробуйте этот эмулятор, который я создал для локального создания/отладки веб-узлов. это обеспечивает эмуляцию отправки апи и мессенджера пользовательский интерфейс

я создал эмулятор для отправки апи и мессенджера, который я использую для отладки веб-перехватчики локально

https://github.com/SonOfSardaar/facebook-send-api-emulator

я наткнулся на это (я не попробовал этот еще, но выглядит хорошо)

https://docs.microsoft.com/en-us/bot-framework/debug-bots-emulator