6

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

dean2020
  • 645
  • 2
  • 8
  • 25
  • It's unclear what you are asking here. What is your intention, what have you done, and what results do you get? "It doesn't work" is not a great place to start. –  Jan 18 '17 at 02:14

2 Answers2

10

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")))
);
Maak
  • 4,720
  • 3
  • 28
  • 39
-4

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

jonmrich
  • 4,233
  • 5
  • 42
  • 94