Как исправить ошибку 'await' вне функции при пересылке удаленных сообщений в телеграмме в избранное?

Как исправить ошибку SyntaxError с сообщением 'await' outside function, возникающую при попытке пересылки сообщения в коде Python с использованием `Telethon`?
  • 10 июня 2024 г. 6:11
Ответы на вопрос 3
Для исправления данной ошибки вам необходимо поместить использование оператора `await` внутрь асинхронной функции. Вот пример исправления кода:

```python
from telethon.sync import TelegramClient
from telethon.tl.types import InputMessagesFilterPhotos
from telethon.errors.rpcerrorlist import MessageIdInvalidError

api_id = 'your_api_id'
api_hash = 'your_api_hash'
phone_number = 'your_phone_number'

client = TelegramClient('session_name', api_id, api_hash)

async def main():
    await client.connect()
    if not await client.is_user_authorized():
        await client.send_code_request(phone_number)
        await client.sign_in(phone_number, input('Enter the code: '))

    # Ищем сообщение, которое нужно добавить в избранное
    messages = await client.get_messages('username', limit=1)
    for message in messages:
        try:
            await client.star_message('favorite_messages_folder', message.id)
        except MessageIdInvalidError as e:
            print(f"Error starring message: {e}")

with client:
    client.loop.run_until_complete(main())
```

Поместите оператор `await` внутрь функции `main()`, чтобы исправить ошибку 'await' outside function. После этого код должен корректно выполниться без ошибок.
<code>await client.run_until_disconnected()</code> <br/> Эта строка где находится? Вне функции? А почему? <br/> Выглядит как будто ей место в main().
<a href="https://pythonworld.ru/samouchitel-python" rel="nofollow">https://pythonworld.ru/samouchitel-python</a>
Похожие вопросы