yxtiblin
@yxtiblin

Как получить информацию о юзерах тг канала?

Использую telethon, сначала пытался использовать get_participants и inter_participants, но получал ошибки и тогда в офф документации увидел следующий код и попробовал с ним
from telethon.tl.functions.channels import GetParticipantsRequest
from telethon.tl.types import ChannelParticipantsSearch
from time import sleep

offset = 0
limit = 100
all_participants = []

while True:
    participants = client(GetParticipantsRequest(
        channel, ChannelParticipantsSearch(''), offset, limit,
        hash=0
    ))
    if not participants.users:
        break
    all_participants.extend(participants.users)
    offset += len(participants.users)

Но получаю ошибку
AttributeError: 'coroutine' object has no attribute 'users'

Если удалить .users то получаю
TypeError: 'coroutine' object is not iterable
эту же ошибку я получал при использовании методов get_participants и inter_participants. В чем причина этих ошибок?
  • Вопрос задан
  • 570 просмотров
Решения вопроса 1
@AlbertForest
participants в вашем случае - сопрограмма. Если нужен результат ее выполнения, то ее нужно ожидать. Если вы заглядывали в доки telethon, то должны были заметить ссылки на доки asyncio.
Это делается так
participants = await client...
Но я бы не использовал asyncio на вашем месте. Или предварительно изучил бы документацию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы