Пишу бота автопостинг. Представим такую ситуацию, пользователь добавляет бота в список и при добавлении забыл бота добавить на канал, для подтверждения добавления канала пользователь должен ему написать "Готово", но код после данного сообщения не обрабатывает ничего, а выдаёт ошибку, как это исправить?
Часть кода в котором ошибка(выделена, там где < b > и < / b >):
def check_admin_bot_in_channel(msg):
global id_list_channel
if msg.text == 'Готово':
chat_member = bot.get_chat_member(id_list_channel[-1], 6276048962)
if chat_member.status == 'administrator':
kb = StartKB()
mess = 'Отлично! Теперь вы можете создавать посты на данном канале.'
bot.send_message(msg.chat.id, mess)
bot.send_message(msg.chat.id, 'Вы в главном меню!', reply_markup=kb)
elif chat_member.status == 'member':
kb = BackMainMenu2()
mess = 'Бот участник канала, дайте ему права администратора, и нажмите кнопку "Продолжить", ' \
'а после напишите "Готово".'
bot.send_message(msg.chat.id, mess, reply_markup=kb)
<b>else:
try:
kb = BackMainMenu2()
mess = 'Бот не является участником канала, добавьте его на канал с правами администратора ' \
'и нажмите кнопку "Продолжить", а после напишите "Готово".'
bot.send_message(msg.chat.id, mess, reply_markup=kb)
except telebot.apihelper.ApiTelegramException:
print(chat_member)</b>
else:
kb = BackMainMenu2()
mess = 'Я вас не понял. Если вы добавили бота на ваш канал с правами администратора, то ' \
' нажмите кнопку "Продолжить", а после напишите "Готово".'
bot.send_message(msg.chat.id, mess, reply_markup=kb)
И ошибка:
2023-05-11 21:40:03,395 (__init__.py:1083 MainThread) ERROR - TeleBot: "Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 403. Description: Forbidden: bot is not a member of the channel chat"
2023-05-11 21:40:03,396 (__init__.py:1085 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 1074, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\util.py", line 147, in raise_exceptions
raise self.exception_info
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\util.py", line 90, in run
task(*args, **kwargs)
File "C:\Users\feed7\OneDrive\Рабочий стол\Коды Python\Мои коды Python\Автопост бот\main.py", line 129, in check_admin_bot_in_channel
chat_member = bot.get_chat_member(id_list_channel[-1], 6276048962)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 1478, in get_chat_member
result = apihelper.get_chat_member(self.token, chat_id, user_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\apihelper.py", line 385, in get_chat_member
return _make_request(token, method_url, params=payload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\apihelper.py", line 162, in _make_request
json_result = _check_result(method_name, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\feed7\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\apihelper.py", line 189, in _check_result
raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 403. Description: Forbidden: bot is not a member of the channel chat
"