@sema-fedotov

Как отправить разом две клавиатуры в Telegram API?

Передо мной стоит задача по нажатию кнопки на keyboard отправлять сообщение вместе с inline_keyboard, но я немного изменил основную кливиатуру и мне как-то нужно вместе с отправлением inline клавиатурой, обновить еще и основную. Каким образом это можно реализовать?
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
OTCloud
@OTCloud
Программирование и Архитектура ПО
Увы, в Telegram нет метода чтобы обновить ReplyKeyboardMarkup без текста. Есть только метод editMessageReplyMarkup для обновления InlineKeyboardMarkup.

Я думал, что может получиться отправить сообщение с keyboard, а потом вызвать метод editmessagereplymarkup, чтобы в предыдущее сообщение подставить inline_keyboard, но нет. API выдал ошибку "Bad Request: message can't be edited". Листинг запросов:

1. Отправка keyboard + text
curl --location --request GET 'https://api.telegram.org/bot###/sendMessage' \
--header 'Content-Type: application/json' \
--data '{
    "chat_id": "###",
    "text": "Some text",
    "reply_markup": {
        "keyboard": [
            [
                {
                    "text": "Button 1",
                    "request_contact": true
                }
            ]
        ],
        "resize_keyboard": true
    }
}'


2. Попытка отредактировать предыдущее сообщение и вставить inline_keyboard
curl --location --request GET 'https://api.telegram.org/bot###/editMessageReplyMarkup' \
--header 'Content-Type: application/json' \
--data '{
    "chat_id": "###",
    "message_id": 1332,
    "reply_markup": {
        "inline_keyboard": [
            [
                {
                    "text": "Button 2",
                    "callback_data": "foo"
                }
            ]
        ],
    }
}'
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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