Telegram Bot API
Короче бот должен ознакомить пользователя с продукцией ресейлера , я сделал одну функцию которая выводит марки телефонов , вторая выводит модели, третья в зависимости от выбранной модели на экран будет выводить фото, описание и т.д. .Проблема заключается в том что в третей функции не выводится ни-чего а в консоли выводится вот такая ошибка NameError (“name 'message' is not defined”).При этом если я поставлю сначала третью то она будет работать (странно).Я не понимаю по какой причине это происходит.
import telebot
import config
from telebot import types
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Catalogo")
item2 = types.KeyboardButton("Regole")
markup.add(item1, item2)
bot.send_message(message.chat.id, "Benvenuto, {0.first_name}!\nIo sono - <b>{1.first_name}</b>.".format(message.from_user, bot.get_me()),
parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def risposta(message):
if message.chat.type == 'private':
if message.text == "Catalogo":
markup = types.InlineKeyboardMarkup(row_width = 1)
item1 = types.InlineKeyboardButton("iPhone", callback_data = "iPhone")
item2 = types.InlineKeyboardButton("Samsung", callback_data = "Samsung")
item3 = types.InlineKeyboardButton("Huawei", callback_data = "Huawei")
item4 = types.InlineKeyboardButton("Xiaomi", callback_data = "Xiaomi")
markup.add(item1, item2, item3, item4)
bot.send_message(message.chat.id, "Scegliete cosa vi interessa:", reply_markup=markup)
elif message.text == "Regole":
bot.send_message(message.chat.id, " 1)Dovete vivere a Roma.\n2)Il pagamento viene effettuato dopo aver scielto il telefono.\n3)")
else :
bot.send_message(message.chat.id, "Scusate non ho capito")
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
try:
if call.message:
if call.data == "Samsung" :
markup = types.InlineKeyboardMarkup(row_width = 3)
item1 = types.InlineKeyboardButton("Model", callback_data = "Model")
item2 = types.InlineKeyboardButton("Model", callback_data = "Model")
item3 = types.InlineKeyboardButton("Model", callback_data = "Model")
item4 = types.InlineKeyboardButton("Model", callback_data = "Model")
item5 = types.InlineKeyboardButton("Model", callback_data = "Model")
item6 = types.InlineKeyboardButton("Model", callback_data = "Model")
item7 = types.InlineKeyboardButton("Model", callback_data = "Model")
item8 = types.InlineKeyboardButton("Model", callback_data = "Model")
item9 = types.InlineKeyboardButton("Model", callback_data = "Model")
item10 = types.InlineKeyboardButton("Model", callback_data = "Model")
markup.add(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10)
bot.send_message(call.message.chat.id, "Scegliete il modello:", reply_markup=markup)
elif call.data == "Xiaomi":
markup = types.InlineKeyboardMarkup(row_width = 3)
item1 = types.InlineKeyboardButton("Model", callback_data = "Model")
item2 = types.InlineKeyboardButton("Model", callback_data = "Model")
item3 = types.InlineKeyboardButton("Model", callback_data = "Model")
item4 = types.InlineKeyboardButton("Model", callback_data = "Model")
item5 = types.InlineKeyboardButton("Model", callback_data = "Model")
item6 = types.InlineKeyboardButton("Model", callback_data = "Model")
item7 = types.InlineKeyboardButton("Model", callback_data = "Model")
item8 = types.InlineKeyboardButton("Model", callback_data = "Model")
item9 = types.InlineKeyboardButton("Model", callback_data = "Model")
item10 = types.InlineKeyboardButton("Model", callback_data = "Model")
markup.add(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10)
bot.send_message(call.message.chat.id, "Scegliete il modello:", reply_markup=markup)
elif call.data == "Huawei":
markup = types.InlineKeyboardMarkup(row_width = 3)
item1 = types.InlineKeyboardButton("Model", callback_data = "Model")
item2 = types.InlineKeyboardButton("Model", callback_data = "Model")
item3 = types.InlineKeyboardButton("Model", callback_data = "Model")
item4 = types.InlineKeyboardButton("Model", callback_data = "Model")
item5 = types.InlineKeyboardButton("Model", callback_data = "Model")
item6 = types.InlineKeyboardButton("Model", callback_data = "Model")
item7 = types.InlineKeyboardButton("Model", callback_data = "Model")
item8 = types.InlineKeyboardButton("Model", callback_data = "Model")
item9 = types.InlineKeyboardButton("Model", callback_data = "Model")
item10 = types.InlineKeyboardButton("Model", callback_data = "Model")
markup.add(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10)
bot.send_message(call.message.chat.id, "Scegliete il modello:", reply_markup=markup)
elif call.data == 'iPhone':
markup = types.InlineKeyboardMarkup(row_width = 3)
item1 = types.InlineKeyboardButton("iPhone 11 Pro Max", callback_data = "iPhone 11 Pro Max")
item2 = types.InlineKeyboardButton("iPhone 11 Pro", callback_data = "iPhone 11 Pro")
item3 = types.InlineKeyboardButton("iPhone 11", callback_data = "iPhone 11")
item4 = types.InlineKeyboardButton("iPhone XS Max", callback_data = "iPhone XS Max")
item5 = types.InlineKeyboardButton("iPhone XS", callback_data = "iPhone XS")
item6 = types.InlineKeyboardButton("iPhone XR", callback_data = "iPhone XR")
item7 = types.InlineKeyboardButton("iPhone X", callback_data = "iPhone X")
item8 = types.InlineKeyboardButton("iPhone 8 Plus", callback_data = "iPhone 8 Plus")
item9 = types.InlineKeyboardButton("iPhone 8", callback_data = "iPhone 8")
item10 = types.InlineKeyboardButton("iPhone 7 Plus", callback_data = "iPhone 7 Plus")
item11 = types.InlineKeyboardButton("iPhone 7", callback_data = "iPhone 7")
markup.add(item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11)
bot.send_message(call.message.chat.id, "Scegliete il modello:", reply_markup=markup)
else :
bot.send_message(message.chat.id, "Scusate non ho capito")
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Catalogo",
reply_markup=None)
except Exception as e:
print(repr(e))
@bot.callback_query_handler(func=lambda call: True)
def modello(call):
try :
if call.message:
if call.data == "iPhone 11 Pro Max" :
bot.send_message(call.message.chat.id, "OKKK")
elif call.data == "iPhone 11 Pro" :
bot.send_message(call.message.chat.id, "OKK")
except Exception as e:
print(repr(e))
bot.polling(none_stop=True)