Ошибка AttributeError: 'str' object has no attribute 'chat' в pyTelegramBotApi
Делаю Telegram бот на python с помощью библиотеки pyTelegramBotApi. Суть в том, что у меня есть вот такой код
import telebot
from telebot import types
from SQLiter import SQLiter
import link
token = "blablabla" #здесь я вставляю свой реальный токен от бота в телеграмме
bot = telebot.TeleBot(token)
links = []
params = []
@bot.message_handler(commands=['start'])
def startWork(message):
code = bot.send_message(message.chat.id, 'Введите код', reply_markup = types.ReplyKeyboardRemove())
bot.register_next_step_handler(code, startWork1)
def startWork1(message):
code = message.text
if str(code) == "0987654321":
bot.send_message(message.chat.id, "Привет")
else:
bot.register_next_step_handler(code, botWorkStep1)
def botWorkStep1(message):
code = message
status = ['creator', 'administrator', 'member']
print("Шаг 1")
db_worker = SQLiter('codes.db')
for i in range(db_worker.count_rows()):
answer = db_worker.select_single(i)
db_worker.connect.commit()
if code == str(answer[0]):
follower = False
for j in status:
if bot.get_chat_member(chat_id=answer[2], user_id=message.from_user.id).status == j:
bot.send_message(message.chat.id, answer[4])
follower += 1
if not follower:
bot.send_message(message.chat.id, answer[3])
db_worker.close()
startWork(message)
А ошибка у меня вот такая:
2020-06-25 16:13:56,056 (util.py:68 WorkerThread1) ERROR - TeleBot: "AttributeError occurred, args=("'str' object has no attribute 'chat'",)
Traceback (most recent call last):
File "C:\Users\Рэм\PycharmProjects\PythonBot\venv\Include\lib\site-packages\telebot\util.py", line 62, in run
task(*args, **kwargs)
File "C:/Users/Рэм/PycharmProjects/PythonBot/linkBot.py", line 24, in startWork1
bot.register_next_step_handler(code, botWorkStep1)
File "C:\Users\Рэм\PycharmProjects\PythonBot\venv\Include\lib\site-packages\telebot\__init__.py", line 1450, in register_next_step_handler
chat_id = message.chat.id
AttributeError: 'str' object has no attribute 'chat'
Ответы (1 шт):
Автор решения: Nikita
→ Ссылка
Проблема заключается в том, что функция register_next_step_handler первым параметром получает объект message целиком. В примере от разработчиков , они сначала получают этот объект через reply_to, а потом передают первым параметром.
Необходимо, как то получить все сообщение и его передать туда. В данный момент, передается строка в функцию startWork1.