Я создал бот-мессенджер Facebook, который работает отлично. Я использовал php для его создания.
Теперь я хочу добавить новый функционал. Когда владелец бота находится в сети в Messenger и начинает отвечать на сообщения, бот должен перестать отвечать на запросы пользователей.
Как я могу определить, когда владелец начал отвечать?
Я сделал тест на это раньше.
Вы можете попробовать подписаться на «message_echo» webhook. Этот webhook вызывается, когда страница И бот отправляет сообщение пользователю. Таким образом, вам нужно будет отличить, какой «message_echo» от страницы (человек), а какой от бота. В json, который отправил webhook, сообщения от бота будут содержать app_id
ключ в message
объект.
Ваш сервер получит много хитов, подписавшись на этот веб-крючок.
Простая идея — отправить Боту сообщение от учетной записи администратора. Например, если администратор отправляет «STOP», бот прекращает отправку сообщений, пока администратор не отправит «START».
Входящие события в бот содержит идентификатор отправителя. Идентификатор отправителя должен быть соотнесен с конкретным идентификатором администратора. Единственный способ найти этот идентификатор для конкретного пользователя — это отправить сообщение и распечатать его. Идентификатор является специфическим для бота и пользовательской комбинации. Например, мой бот отправит сообщение в мой личный аккаунт с этой строкой JS:
sendTextMessage(1073962542672604,fistName + " " + lastName + " " + messageText); // send a message to Matthew directly
Похоже, у вас работает бот, но если вам нужна дополнительная информация, посмотрите на мой Bot а также источник код.
Просто для удовольствия, я добавил эту функцию в свой бот. Чтобы увидеть подробности в реализации node.js, найдите переменную isStopped в скрипте app.js.