Для ReplyKeyboardMarkup я в curl отдаю такой массив
Array
(
[chat_id] => 12121211
[text] => бла бла бла текст
[parse_mode] => Markdown
[reply_markup] => {"keyboard":[[{"text":"Абонент"},{"text":"Приборы учета"}],["Простая кнопка",{"text":"Расход"}]]}
)
Примерно вот так на PHP:
$keyboard = [
'keyboard'=>[
[['text'=>'Кнопка 1'],['text'=>'Кнопка 2']] // Первый ряд кнопок
,['Простая кнопка',['text'=>'Кнопка 4']] // Второй ряд кнопок
]
];
$post_fields = [
'chat_id' => 12121211,
'text' => 'бла бла бла текст',
'reply_markup' =>Json::encode($keyboard)
];
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
Результат: