PHP Telegram бот API. editMessageReplyMarkup возвращает false - PullRequest
1 голос
/ 14 апреля 2020

У меня есть вопрос об использовании метода editMessageReplyMarkup в API бота Telegram в PHP.

Я пытаюсь предоставить пользователю возможность выбрать категорию и подкатегорию после InlineKeyboardMarkup . Но я хочу сделать это с заменой одной клавиатуры на другую.

Я нашел метод editMessageReplyMarkup , который делает именно то, что мне нужно, но по какой-то причине возвращает мне значение false. На первом скриншоте вы можете увидеть, как бот отправляет мне категории. choosing between categories

После выбора любого из них выполняется следующий код:

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. И когда я запускаю этот скрипт, я вижу, что массивы построены нормально, см. Следующий снимок экрана: built array

И все, что я получил от этого - ложь, возвращающая меня из метода, который я вызвал, из coruse без изменений в сообщении бота telegram.

enter image description here

У кого-нибудь есть идеи? Спасибо за ответ.

...