Задать вопрос
@dpesnyak94

Что не так, библиотека telebot?

Пишу бота в ТГ на telebot
@bot.callback_query_handler(func = lambda call: True)
def movie_choice(call):
	if call.data=='shameless':
		markup2=types.InlineKeyboardMarkup(row_width=1)
		s1 = types.InlineKeyboardButton("1 сезон", callback_data = 's1')
		s2 = types.InlineKeyboardButton("2 сезон", callback_data = 's2')
		s3 = types.InlineKeyboardButton("3 сезон", callback_data = 's3')
		s4 = types.InlineKeyboardButton("4 сезон", callback_data = 's4')
		s5 = types.InlineKeyboardButton("5 сезон", callback_data = 's5')
		markup2.add(s1,s2,s3,s4,s5)
		bot.send_message(message.chat.id, 'Выбери сезон, который хочешь посмотреть:', reply_markup = markup2)

В этом куске кода выбивает такую ошибку:
Скриншот кода удалён модератором.

В чём может быть проблема? Почему 'message' is not defined?
  • Вопрос задан
  • 92 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Потому, что переменной message у вас в коде нет, а обращение к ней есть. В сообщении об ошик едаже процитирована строчка, где это происходит, прочитайте внимательно.
Ответ написан
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Либо
call.chat.id
Либо
def movie_choice(message):
  if message.data=='shameless':
Ответ написан
Комментировать
@jikrdev
Дело в том, что Вы указали переменную call, вместо message и получается так, что Вы пытаетесь вызвать несуществующию переменную. Есть два решения, одно из них:

@bot.callback_query_handler(func = lambda call: True)
def movie_choice(message):
  if message.data=='shameless':
    markup2=types.InlineKeyboardMarkup(row_width=1)
    s1 = types.InlineKeyboardButton("1 сезон", callback_data = 's1')
    s2 = types.InlineKeyboardButton("2 сезон", callback_data = 's2')
    s3 = types.InlineKeyboardButton("3 сезон", callback_data = 's3')
    s4 = types.InlineKeyboardButton("4 сезон", callback_data = 's4')
    s5 = types.InlineKeyboardButton("5 сезон", callback_data = 's5')
    markup2.add(s1,s2,s3,s4,s5)
    bot.send_message(message.chat.id, 'Выбери сезон, который хочешь посмотреть:', reply_markup = markup2)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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