Как исправить ошибку с недостающим аргументом и с его отсутствием?

1 вариант:
@bot.callback_query_handler(func=lambda call: True)
def subChannelDone(call, message):
    if call.data == 'subchanneldone':
        bot.delete_message(call.message.chat.id, call.message.message_id)
        if checkSub(cfg.sponsorChannels, message.from_user.id):
            bot.send_message(message.chat.id, "Привет, {0.first_name}!".format(message.from_user))
        else:
            bot.send_message(message.chat.id, "Для доступа к функционалу подпишись на мой тгк!", reply_markup=nav.showChannels())

Выводит:
TypeError: subChannelDone() missing 1 required positional argument: 'message'


2 вариант:
@bot.callback_query_handler(func=lambda call: True)
def subChannelDone(call):
    if call.data == 'subchanneldone':
        bot.delete_message(call.message.chat.id, call.message.message_id)
    # bot.delete_message(call.message.chat.id, call.message.message_id)
        if checkSub(cfg.sponsorChannels, message.from_user.id):
            bot.send_message(message.chat.id, "Привет, {0.first_name}!".format(message.from_user))
        else:
            bot.send_message(message.chat.id, "Для доступа к функционалу подпишись на мой тгк!", reply_markup=nav.showChannels())

Выводит:
NameError: name 'message' is not defined

Подскажите что делать? Как фиксить?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Подскажите что делать?
решать более простые задачи, боты пока не твой уровень. Ты ведь даже не пытаешься чуток подумать, поанализировать текущее состояние, вот нет у тебя в функции определение message, зато есть такое поле в call, но ты упорно это не видишь.
Ответ написан
Ваш ответ на вопрос

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

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