Доброго времени суток!
Пытаюсь написать код на python, который удаляет последний пост из моего Телеграм канала. Вроде все верно пишу, на первый взгляд, но код не работает...
Помогите исправить, пожалуйста!
import asyncio
from telegram import Bot
from telegram.error import TelegramError
bot_token = 'token12345'
chat_id = '@username'
async def main():
bot = Bot(token=bot_token)
try:
messages = await bot.get_chat(chat_id).fetch_all()
if messages:
message_to_delete = messages[-1]
await message_to_delete.delete()
print(f'Успешно удалили сообщение: {message_to_delete.text}')
else:
print('В канале нет сообщений для удаления.')
except TelegramError as e:
print(f'Произошла ошибка: {e}')
if __name__ == '__main__':
asyncio.run(main())
Вот такая ошибка:
D:\pyMap\venv\Scripts\python.exe "D:\pyMap\main 5.py"
Traceback (most recent call last):
File "D:\pyMap\main 5.py", line 29, in
asyncio.run(main())
File "C:\Users\777\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 194, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "C:\Users\777\AppData\Local\Programs\Python\Python312\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\777\AppData\Local\Programs\Python\Python312\Lib\asyncio\base_events.py", line 664, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "D:\pyMap\main 5.py", line 15, in main
messages = await bot.get_chat(chat_id).fetch_all()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'coroutine' object has no attribute 'fetch_all'
sys:1: RuntimeWarning: coroutine 'Bot.get_chat' was never awaited
Process finished with exit code 1