Как отслеживать, на какой вопрос отвечает пользователь? - PullRequest
0 голосов
/ 10 января 2020

Некоторые вопросы, которые задает мой чат-мессенджер, требуют текстового ввода. В шаблоне кнопки я могу установить полезную нагрузку , чтобы знать, что именно выбрал пользователь, и обрабатывать его на основании этого. Но с текстовыми ответами мне нужно фильтровать, если пользовательский ответ так или иначе связан с «Изменить адрес, Выставление счетов, Возврат и т. Д. c». Например:

bot-question: What is your new phone number?
user-answer: +123 123 12345

А теперь в бэк-энде я делаю это:

if(user-answer in_array('billing keywords') {
    // code
} elseif (user-answer in_array('delivery keywords')) {
    // code
} elseif (user-answer in_array('payments keywords')) {
    // code
} elseif (user-answer in_array('change-phone-number keywords')) {
    // Finally got where I wanted ??
}

Разве нельзя как-то добавить какой-либо тег на вопрос бота, так я бы уже знал, что ответ будет связан с change-phone-number keywords? Например, как это:

  "template_type" => "text",
  "text" => "What is your new phone number?",
  "payload" => "changing_phone_number"

1 Ответ

0 голосов
/ 20 января 2020

В конце концов было невозможно получить postback из обычного текстового сообщения, поэтому, что я сделал, я создал дополнительные столбцы:

  • Ожидая_billing_info
  • Ожидая_фон_номер_update
  • et c.

И я по умолчанию установил 0, но когда бот задает вопрос вроде:

Хотите изменить свой номер телефона?

Я установил его на 1, и когда пользователь вводит его, я делаю:

if (expecting_phone_number_update == 1) {
    // 1. get the message
    // 2. Check if it's correct phone number format
    // 3. Reply based on 2. and update phone number
} elseif (expecting_billing_info == 1) {
    // ...
}

Это не совсем чистое решение, но оно делает Работа. Будем надеяться, что мессенджер выпустит эту функцию обратной связи и для обычных сообщений! :)

...