Telegram 电报机器人:如何获取回调_数据值?

Telegram 电报机器人:如何获取回调_数据值?,telegram,telegram-bot,php-telegram-bot,Telegram,Telegram Bot,Php Telegram Bot,我有一个简单的电报机器人。我的“/select”命令显示两个按钮,每个按钮都有自己的值。所以,如果用户点击一个按钮,我可以得到文本,但我不能得到回调数据值。不知道我做错了什么 代码如下: $update = json_decode(file_get_contents('php://input')); $callback_query = $update['callback_query']; if (isset($callback_query)){ //Fetching callback

我有一个简单的电报机器人。我的“/select”命令显示两个按钮,每个按钮都有自己的值。所以,如果用户点击一个按钮,我可以得到文本,但我不能得到回调数据值。不知道我做错了什么

代码如下:

$update = json_decode(file_get_contents('php://input'));

$callback_query = $update['callback_query'];

if (isset($callback_query)){
    //Fetching callback
    $data = $callback_query->data;
    $message = $callback_query->message;
    $message_id = $callback_query->message->message_id;
    $chat_id = $message->chat->id;

    switch($data){
        case "1":
           bot('SendMessage',[
               'chat_id' => $chat_id,
               'text' => "1"
           ]);
           break;

       case "2":
           bot('SendMessage',[
               'chat_id' => $chat_id,
               'text' => "2"
            ]);
            break;
     }
   }else{

    $message = $update->message;
    $message_id = $update->message->message_id;
    $text = $message->text;
    $chat_id = $message->chat->id;

    //Statement beginning

    switch($text){

        case "/select":            
            $keyboard = array(
                'keyboard' => [[['text' =>  "one", 'callback_data' => "1"]],[['text' =>  "two", 'callback_data' => "2"]]],
                'resize_keyboard' => true, 
                'one_time_keyboard' => true
            );
        $markup = json_encode($keyboard, true);            

        bot('SendMessage',[
            'chat_id' => $chat_id,
            'reply_markup' => $markup,
            'text' => "Choose your option"
        ]);
        break;            

    default:

        bot('SendMessage',[
            'chat_id' => $chat_id,
            'text' => "This is a test"
        ]);
}

}

您只需要处理从电报发送到webhook的更新,这意味着您需要设置条件,如果更新类型为callback\u query,则需要解析数据

请查看电报文档,或观看一些PHP示例,如:


祝你好运保持冷静,在更新时发送电报:D

您有一个数组,因此您可以得到如下结果:


$callback\u query\u data=$update['callback\u query']['data']

将单词“键盘”更改为“内联键盘”将解决您的问题。

我已经编辑了代码,添加了回调查询部分,但仍然不起作用。