Telethon: проверьте, зарегистрирован ли экземпляр клиента

Я пытаюсь войти в учетную запись пользователя с помощью API бота телеграммы и не могу найти способ проверить, имеет ли клиентский экземпляр доступ к учетной записи...

это мой экземпляр:

client = TelegramClient(client_name, API_ID, API_HASH)

используя client.start(), он определяет, вошел ли пользователь в систему или нет, поэтому у меня тоже должен быть доступ к этому...


person Hamid Bakhtiari    schedule 09.11.2020    source источник
comment
Без более подробной информации я не могу дать вам отличный ответ. Лично я бы погрузился в исходный код, если бы поведение не задокументировано. В противном случае вы можете подумать об открытии вопроса на GitHub, чтобы попросить помощи у сопровождающих. Похоже, они довольно активны на доске вопросов, и я думаю, они будут рады вам помочь.   -  person DragonBobZ    schedule 09.11.2020


Ответы (1)


Вам необходимо использовать get_me(): он вернет текущего вошедшего в систему пользователя или None, если его нет.

client = TelegramClient(client_name, API_ID, API_HASH)
if (await client.get_me()):
    # client has an user logged in
else:
    # client hasn't an user logged in 

Кроме того, если вы посмотрите на исходный код вы увидите, что start() делает то же самое.

person TheKill-996    schedule 09.11.2020
comment
Почетное упоминание client.is_user_authorized что имеет больше семантического смысла. - person Lonami; 10.11.2020