Замена текста на кнопках в Telegram без повторной отправки кнопок

Замена текста на кнопках работает только в Telegram.

Поменять текст на кнопках, не присылая новый экран, можно с помощью запроса к Телеграм API методом editMessageReplyMarkup.

Для этого оформите в конструкторе экраны таким образом:


Рассмотрим более подробно:

1. Добавьте Кнопки. Все кнопки будут переводить на Запрос.

2. Оформите Запрос.

Метод — POST.

URL запроса:

https://api.telegram.org/bot123456789/editMessageReplyMarkup

Где вместо 123456789 — токен вашего бота.

Добавьте Тело запроса:

{
"chat_id": "{{this_user.platform_id}}",
"message_id": "{{lastMessageId}}",
"reply_markup": {
          "inline_keyboard": [
            [
              {
                "text": "3",
"callback_data": "{\"value\": \"kn3\"}"
              },
{
"text": "4",
"callback_data": "{\"value\": \"kn4\"}"
}
            ]
          ]
        }
}

В Теле запроса в переменная text имеет значения "3" и "4".

"text": "3"
"text": "4"

Поэтому, когда пользователь нажмет на кнопку 1 или 2 на первоначальном экране, Запросом цифры на кнопках меняются на 3 и 4.

Значения в переменной "text" можно поменять на свои — на текст, который должен быть на кнопках после нажатия.

3. На том же экране, после Запроса, добавьте Перемотку с активным чек-боксом Остановить бота после перемотки до следующего сообщения от пользователя. Перемотка будет переводить на следующий экран с Развилкой.

4. Добавьте Развилку, в которой будет проверяться кнопка, которую нажал пользователь.

Для этого в Имя переменной откуда Развилка возьмет значение добавьте переменную lastUpdate.update.data.value.

Создайте Цели Развилки, которые будут реагировать на возможные значения пользователя.

В нашем примере, проверяются значения kn3 и kn4, так как их мы указали в теле запроса. Вы можете поменять значения на свои, главное, чтобы в Запросе и в Развилке эти значения совпадали.

5. Добавьте на экраны, куда будет попадать пользователь после Развилки, компонент Запрос.

Метод запроса — POST и URL запроса, остаются без изменений, как на «Экране после кнопок».

Когда пользователь окажется на этих экранах, текст на кнопках от бота снова поменяется на текст, который будет в теле запроса в переменной "text" .

В начало ↑