2017-10-29 8 views
0

私はテレグラムで簡単なボットを持っています。私の "/ select"コマンドは2つのボタンを表示し、それぞれのボタンは独自の値を持っています。したがって、ユーザーがボタンをクリックすると、テキストを取得できますが、callback_data値を取得できます。私が間違っていることを確認していない。ここで電報Bot:callback_dataの値を取得する方法は?

コードです:あなたは、あなたのウェブフックに電報から着信アップデートをproccessする必要が

$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" 
     ]); 
} 

} 

答えて

0

、これはあなたが、更新がタイプcallback_queryである場合、条件を作成し、データを解析する必要があるということです。

電報のマニュアルを確認するか、のようなPHPのためのいくつかの例を見てください:

How can I differentiate between a 'Message' update and a 'Callback Query' update? (Telegram Bot API)

https://jqueryajaxphp.com/telegram-bot-api-keyboards-callbacks/

幸運を! &落ち着きを保ち、電報を送る:

+0

私はコードを編集しました。私はcallback_queryの部分を追加しましたが、まだ動作しません。 –

関連する問題