У меня есть вопрос об использовании метода editMessageReplyMarkup в API бота Telegram в PHP.
Я пытаюсь предоставить пользователю возможность выбрать категорию и подкатегорию после InlineKeyboardMarkup . Но я хочу сделать это с заменой одной клавиатуры на другую.
Я нашел метод editMessageReplyMarkup , который делает именно то, что мне нужно, но по какой-то причине возвращает мне значение false. На первом скриншоте вы можете увидеть, как бот отправляет мне категории.
После выбора любого из них выполняется следующий код:
if (is_array($update[count($update)-1]["callback_query"])) {
$chat_id = $update[count($update)-1]["callback_query"]["from"]["id"];
$requested_category = $update[count($update)-1]["callback_query"]['data'];
$message_answer_id = $update[count($update)-1]["callback_query"]['message']['message_id'];
send_sub_projects($user_model, $telegram, $chat_id, $requested_category, $message_answer_id);
}
Вот метод send_sub_projects
function send_sub_projects($user_model, $telegram, $chat_id, $category, $message_id) {
$subcategories = $user_model->get_sub_categories($category);
for ($i=0; $i < count($subcategories); $i++) {
$subcategories[$i] =
array(array('text'=>$subcategories[$i],'callback_data'=>$subcategories[$i]));
}
$decoded_subcategories = json_encode(array('inline_keyboard' => $subcategories));
$parameters =
array(
'chat_id' => $chat_id,
'message_id' => $message_id,
'reply_markup' => $decoded_subcategories
);
$telegram->editMessageReplyMarkup($parameters)
}
Так что в основном я отправляю все, что требуется: message_id, chat_id, new_markup. И когда я запускаю этот скрипт, я вижу, что массивы построены нормально, см. Следующий снимок экрана:
И все, что я получил от этого - ложь, возвращающая меня из метода, который я вызвал, из coruse без изменений в сообщении бота telegram.
У кого-нибудь есть идеи? Спасибо за ответ.