Ошибка "TypeError: 'async for' requires an object with __aiter__ method, got range" возникает, потому что вы пытаетесь использовать `async for` с объектом `range`, который не является асинхронным итератором. Вместо этого вам нужно использовать асинхронные итераторы, такие как `aiter` из модуля `asyncio`.
Вот пример исправленного кода:
``` python
import asyncio
from telethon.sync import TelegramClient
# Ваши данные авторизации
api_id = 123456
api_hash = 'abcdefghijklmnopqrstuvwxyz'
# Создаем клиента Telegram
client = TelegramClient('session_name', api_id, api_hash)
# Вспомогательная функция для рассылки сообщений
async def send_message(phone, message):
await client.start(phone)
await client.send_message('username', message)
await client.disconnect()
# Функция для рассылки сообщений
async def main():
messages = ['Сообщение 1', 'Сообщение 2', 'Сообщение 3']
phones = ['+1234567890', '+0987654321']
# Используем асинхронные итераторы для цикла
async for phone in asyncio.stream(phones):
for message in messages:
await send_message(phone, message)
# Запускаем основной цикл
with client:
client.loop.run_until_complete(main())
```
В этом примере используется `async for` для итерации по асинхронному итератору `asyncio.stream(phones)`, а не по `range`. Затем вызывается функция `send_message` для отправки каждого сообщения на каждый телефонный номер. Обратите внимание, что я также обернул главный цикл в `client.loop.run_until_complete`, чтобы выполнить его асинхронно.