Telegram Bot Inline Keyboard not displaying PHP

14,436

It looks like you are missing an additional array. The reply_markup should look like this:

$keyboard = array(
    "inline_keyboard" => array(array(array("text" => "My Button Text", "callback_data" => "myCallbackData")))
);
Share:
14,436

Related videos on Youtube

dean2020
Author by

dean2020

Updated on June 05, 2022

Comments

  • dean2020
    dean2020 almost 2 years

    The following code works, it adds custom keyboard keys 'Button1' and 'Button2'

    $keyboard = [
                  'keyboard' => [['Button1'],['Button2']],
                  'resize_keyboard' => true,
                  'one_time_keyboard' => true,
                  'selective' => true
                ];
    
    $keyboard = json_encode($keyboard, true);
    
    $sendto = API_URL."sendmessage?chat_id=".$chatID."&text=".$reply."&parse_mode=HTML&reply_markup=$keyboard";
    

    I need to use Inline Keyboard though for my purposes, but I haven't been able to get it to work

    $keyboard = [
                 'inline_keyboard' => [['Button1' =>  'test', 'callback_data' => 'test'],
                ];
    

    or

    $keyboard = [                       
                 'inline_keyboard' => [['Button1' =>  'test'],['callback_data' => 'test']],
                ];
    

    doesn't work. I would really appreciate if anyone has a working example or can point out what is wrong in my example.

    Link to documentation: https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating

Related