@fakin_kiska
Telegram Bots and iOS

Почему возникает ошибка при обработке клавиатуры в телеграм?

Сделал так, чтобы при команде /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 у меня все работало, но мне нужно было их добавить, чтобы кнопка снизу чата не была огромной и после нажатия убиралась, что делаю не так - не понимаю
  • Вопрос задан
  • 1602 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы