【发布时间】:2020-08-17 08:27:09
【问题描述】:
我使用 Laravel 框架和 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**){
...
}
这只是功能的一部分,仍然有不同的命令,键盘的变体,因此我需要了解如何正确处理传入的消息,以便知道我收到了哪个特定问题的答案。
附言我发现解决方案说您需要创建一个包含消息历史记录的数据库表并基于此执行处理程序。还有其他方法吗?
【问题讨论】:
标签: laravel telegram-bot php-telegram-bot telegram-webhook