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. В чем причина этих ошибок?
  • Вопрос задан
  • 445 просмотров
Решения вопроса 1
@AlbertForest
participants в вашем случае - сопрограмма. Если нужен результат ее выполнения, то ее нужно ожидать. Если вы заглядывали в доки telethon, то должны были заметить ссылки на доки asyncio.
Это делается так
participants = await client...
Но я бы не использовал asyncio на вашем месте. Или предварительно изучил бы документацию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект
23 апр. 2024, в 18:47
10000 руб./за проект