Как запомнить предыдущие ответы в Webhooks (Создание чат-бота Facebook Messenger)

Для чат-бота просто реализовать событие веб-перехватчика для одного события, например:

If option A, send X
If option B, send Y
If Option C, send Z

Однако что, если следующее событие должно быть основано на предыдущем событии? Например, есть варианты, перечисленные как:

A)
   1
   2
   3
B)
   1
   2
   3

Где нужно сначала отправить письмо, а потом отправить число. Поэтому, если я хочу выбрать B2, я должен отправить B, а затем 2. Однако мне нужен способ запомнить выбор B. Благодаря тому, как реализованы веб-хуки, следующее сообщение запускает программу заново, поэтому вместо числа она снова ожидает букву с самого начала.

Если бы это был обычный python, я бы использовал метод input() после выбора первой буквы, чтобы дождаться выбора числа, но этот метод недоступен в веб-перехватчиках, поскольку он ломает программу.

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




Ответы (1)


Я могу предложить вам два варианта.
Вариант 1.
Вы можете сохранить текущее состояние пользователя, используя PSID и параметр, выбранный пользователем.
Вариант 2.
Вы можете спроектировать свои полезные нагрузки таким образом, чтобы вы могли определить свои варианты. Например, когда вы отправляете A) 1, 2, 3, вы фактически отправляете A1, A2, A3 в своей полезной нагрузке, а 1, 2, 3 — как тексты для просмотра.

person Azizul Hakim    schedule 18.10.2018