Как понять, на какое сообщение от бота telegram ответил пользователь? - PullRequest
0 голосов
/ 03 мая 2020

Я использую Laravel Framework и Telegram Bot SDK. Я посмотрел много руководств, и все говорят, как легко создать команду и получить ответ, но я не могу понять, как создавать диалоги между пользователем и ботом. В моем webhook я могу сделать, например:

$message = Telegram::getWebhookUpdates()->getMessage();
if ($message->getText() == 'something') 
   foreach (Service::get() as $item => $value){
      if($value->name == $message->getText()) {
         $credential = Credential::find($value->id);
         if($credential) {
            Telegram::sendMessage([
               'chat_id' => $message->getChat()->getId(),
               'text' => 'Enter the data'
            ]);
         }
      }
   }
}
Telegram::commandsHandler(true);

И после того, как пользователь отправляет данные (в числовом формате), мне нужно обработать ответ. Но как я могу проверить текст сообщения с условным оператором, чтобы знать, что это ответ на мое предыдущее сообщение, если это любое число. Например:

$message = Telegram::getWebhookUpdates()->getMessage();
if($message->getText() == '/start'){
   ...
}
elseif($message->getText() == **HERE USER RESPONSE WITH DATA**){
   ...
}

Это только часть функциональности, все еще есть разные команды, варианты клавиатур, и поэтому мне нужно понять, как правильно обрабатывать входящие сообщения, чтобы знать, какой конкретный вопрос я получил ответ. PS Я нашел решения, которые говорят, что вам нужно создать таблицу базы данных с историей сообщений и на основе этого сделать обработчики. Есть ли другие способы?

...