首页 > 解决方案 > 在 Telegram Bot 中使下一个输入消息成为 callback_query 函数的一部分

问题描述

我正在编写一个 Telegram Bot,它向用户显示不同的选项作为内联按钮,其中一个是“搜索”。

一旦在搜索中,我打算下一个发送的消息是用于搜索的字符串。但是,我不知道如何使发送的消息用于搜索查询,而不是用于其他选项/目的。如果每次按下消息或按钮时从头开始再次读取机器人文件,我无法告诉机器人下一条消息是与按下的按钮(搜索)相关的消息或与按下按钮(我不知道我是否对我的疑问足够清楚,或者我让理解变得更加复杂)。

因此代码的相关部分如下所示:

  if(isset($request->callback_query->data)){
    $data = $request->callback_query->data;
    switch($data){
        case 'search':
            sendMessage($request->callback_query->message->chat->id, "Write what you want to search.");
    //(HERE is where the program should "wait" for the user to input something to be used in a DB query)
    //DBquery function 

                break;
        }
    }else{
        keyboard($request->message->chat->id, "Choose one of the following options:", $keyboard);
    }

$keyboard = array(
    "inline_keyboard" => [
        [
            ["text" => "\xF0\x9F\x94\x8E"." Search item","callback_data" => "search"],
            ["text" => "\xF0\x9F\x8C\x8F"." Visit web","url" => "https://website.com"]
            //more options to be written
        ]
    ]
);

标签: botstelegram

解决方案


推荐阅读