Сделал так, чтобы при команде /start бот выводил сообщение с ReplyKeyboardMarkup, но по какой то причине возникает одна и та же ошибка - Bad Request: can't parse reply keyboard markup JSON object
Код без json_encode:
if (strpos($message, "/start") === 0) { // Команда start, вызов кнопки под чатом
$post = [
'chat_id' => $chat_id,
'text' => 'Напиши любое сообщение или нажми на кнопку ниже, чтобы начать!',
'reply_markup' => ['keyboard' => [[['text' => 'Открыть список коктейлей']]],
'resize_keyboard' => true,
'one_time_keyboard' => true]
];
sendRequest('sendMessage', $post);
}
Ответ телеграм:
{
"chat_id": ххх,
"text": "Напиши любое сообщение или нажми на кнопку ниже, чтобы начать!",
"reply_markup": {
"keyboard": [
[
{
"text": "Открыть список коктейлей"
}
]
],
"resize_keyboard": true,
"one_time_keyboard": true
}
}
Bad Request: can't parse reply keyboard markup JSON object
Код с json_encode клавиатуры:
function reply_keyboard($array) {
return json_encode(['keyboard' => $array]);
}
if (strpos($message, "/start") === 0) { // Команда start, вызов кнопки под чатом
$post = [
'chat_id' => $chat_id,
'text' => 'Напиши любое сообщение или нажми на кнопку ниже, чтобы начать!',
$cocktails_button = [[['text' => 'Открыть список коктейлей']]],
'reply_markup' => [reply_keyboard($cocktails_button),
'resize_keyboard' => true,
'one_time_keyboard' => true]
];
sendRequest('sendMessage', $post);
}
Второй ответ телеграма:
{
"chat_id": ххх,
"text": "Напиши любое сообщение или нажми на кнопку ниже, чтобы начать!",
"0": [
[
{
"text": "Открыть список коктейлей"
}
]
],
"reply_markup": {
"0": "{\"keyboard\":[[{\"text\":\"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u043f\\u0438\\u0441\\u043e\\u043a \\u043a\\u043e\\u043a\\u0442\\u0435\\u0439\\u043b\\u0435\\u0439 \\ud83c\\udf7e\"}]]}",
"resize_keyboard": true,
"one_time_keyboard": true
}
}
Bad Request: can't parse reply keyboard markup JSON object
До добавления
"resize_keyboard": true, "one_time_keyboard": true
у меня все работало, но мне нужно было их добавить, чтобы кнопка снизу чата не была огромной и после нажатия убиралась, что делаю не так - не понимаю