Ответы пользователя по тегу Telegram
  • Как сделать, чтобы бот отвечал определенным сообщением с Inline кнопками на слово, которое я ему отправлю?

    ilya_krasin
    @ilya_krasin
    Начинающий программист
    Сделать это можно вот так:
    import telebot
    from telebot import types
    
    bot = telebot.TeleBot('TOKKEN') #здесь должен быть токкен вашего бота
    
    @bot.message_handler(commands=['start', 'menu'])
    def Welcom(message):
     mesg = bot.send_message(message.chat.id, f"Привет, {message.from_user.first_name}. Введите Ваш город")
     bot.register_next_step_handler(mesg, city) #здесь бот ждёт пока пользователь введёт что либо в чат
     
    def city(message):
      if message.text == 'Москва': #здесь мы указываем то что должен ввести пользователь
        bot.send_message(message.chat.id, 'Москва ваш город') #если пользователь ввёл нужное слово или фразу то бот отправит это сообщение
      else:
              bot.send_message(message.chat.id, 'Мне не удалось ничего найти') #если пользователь ввел что-то не то бот отправит это сообщение 
     
    bot.polling(none_stop=True)

    В строке bot.register_next_step_handler(mesg, city) mesg - это переменная в которую вы помещаете сообщение, а city - это название функции отвечающей за то какие слова и фразы должен писать пользователь чтобы бот ему ответил.
    Так же к сообщению можно прикрепить кнопки, просто пропишите их после message.text == 'Москва': и прикрепите к сообщению, аналогично и с остальными фразами .
    Для добавления большего количества фраз просто отделяйте каждое сообщение с помощью elif
    Пример:
    def city(message):
      if message.text == 'Москва':
        bot.send_message(message.chat.id, 'Москва ваш город') 
      elif message.text == 'Санкт-Петербург':
        bot.send_message(message.chat.id, 'Санкт-Петербург ваш город')
      else:
              bot.send_message(message.chat.id, 'Мне не удалось ничего найти')
    Ответ написан
    3 комментария