Qwentor
@Qwentor
Веб-программист

Как обновить кастомную клавиатуру в телеграм?

Есть бот на питоне, использую telebot (pyTelegramBotAPI).
При /start пользователю добавляется кастомная клавиатура с несколькими кнопками - ( telebot.types.ReplyKeyboardMarkup() ). Сейчас понадобилось добавить туда еще пару кнопок. Но у пользователя клавиатура обновляется только если он опять сделает /start, что он вряд ли будет делать.
Как сделать чтобы обновилась автоматически?
  • Вопрос задан
  • 1829 просмотров
Решения вопроса 1
@SwitcherN
Начинаю изучать python
При отправке любого сообщения можно обновить клавиатуру.

bot = telebot.TeleBot(token)

keyboard = types.ReplyKeyboardMarkup()
bot.send_message(message.chat.id, 'Сообщение', reply_markup=keyboard)


Остается отправить всем пользователям сообщение с новой клавиатурой. Например, собрать все chat_id текущих пользователей в список users_list и:

@bot.message_handler(commands=["new_keyboard_for_all_users"])
def send_new_keyboard (message):
    keyboard = types.ReplyKeyboardMarkup() # Новая клавиатура
    for user in users_list:
        bot.send_message(user, 'Произвольное сообщение', reply_markup=keyboard)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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