Телеграмм бот

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Проблема с телеграмм ботом.
Вот код
Python:
import telebot
import sqlite3
import time
from telebot import types


bot = telebot.TeleBot('1236081182:AAHf28ajNPWdz42ZwwK4BCYa-hZpFnOuwUc')

commands = '\n1.help\n2.play\n3.В разработке'

@bot.message_handler(commands=['start'])
def start_command(message):
    bot.send_message(message.chat.id, 'Привет, я бот викторина, вот мои команды' + commands)

@bot.message_handler(commands=['help'])
def help_command(message):
    bot.send_message(message.chat.id, 'Еще раз привет! Вот мои команды' + commands + '\nЕсли у вас какие-то вопросы или предложения, можете написать сюда->\nМой телеграмм')

@bot.message_handler(commands=['play'])
def victorina(message):
    keyboard = types.InlineKeyboardMarkup(row_width=2)
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
    keyboard.add(key_yes)
    key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
    keyboard.add(key_no)
    bot.send_message(message.chat.id, 'Вы запустили викторину.Продолжить?', reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def keyboard(call, message):
    if call.data == 'yes':
        bot.send_message(message.chat.id, 'Хорошо, игра начнется через три секунды')
        time.sleep(3)
    elif call.data == 'no':
        bot.send_message(message.chat.id, victorina(message))

if __name__ == '__main__':
    bot.polling(none_stop=True)
Вот та проблема
Python:
2020-06-03 13:29:05,375 (util.py:68 WorkerThread1) ERROR - TeleBot: "TypeError occurred, args=("keyboard() missing 1 required positional argument: 'message'",)
Traceback (most recent call last):
  File "C:\Users\Grush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 62, in run
    task(*args, **kwargs)
TypeError: keyboard() missing 1 required positional argument: 'message'
"
Traceback (most recent call last):
  File "c:/Программирование/Python/victorina_bot.py", line 37, in <module>
    bot.polling(none_stop=True)
  File "C:\Users\Grush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\__init__.py", line 415, in polling
    self.__threaded_polling(none_stop, interval, timeout)
  File "C:\Users\Grush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\__init__.py", line 439, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "C:\Users\Grush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 111, in raise_exceptions
    six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
  File "C:\Users\Grush\AppData\Roaming\Python\Python38\site-packages\six.py", line 703, in reraise
    raise value
  File "C:\Users\Grush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 62, in run
    task(*args, **kwargs)
TypeError: keyboard() missing 1 required positional argument: 'message'
Эта проблема вызывается, когда я нажимаю на клавиатуре слово Да, а при Нет, вообще ничего не происходит
 

Artesius

Новичок
Пользователь
Апр 30, 2020
4
3
3
Не указывай в колбек message, только call
А в send_message вместо message.chat.id можешь вставлять call.message.chat.id
 
  • Мне нравится
Реакции: Максим Грушин

Максим Грушин

Пользователь
Пользователь
Апр 10, 2020
63
8
8
19
Тюмень
Не указывай в колбек message, только call
А в send_message вместо message.chat.id можешь вставлять call.message.chat.id
Спасибо, сейчас попробую
 

Форум IT Специалистов