Telethon: не запоминается логин

Хочу написать свой клиент для мессенджера Telegram на Python. Для этого использую библиотеку Telethon. Беру пример кода отсюда(пример кода с главной страницы Telethon падает при запуске):

from telethon import TelegramClient
import asyncio

api_id = my_id
api_hash = 'my_ha'


async def main():
    client = TelegramClient('Test2Session', api_id, api_hash)
    await client.start()

    me = await client.get_me()
    print(me.stringify())


if __name__ == '__main__':
    asyncio.run(main())

Этот код выводит на консоль информацию обо мне. При первом запуске Telethon просит ввести номер телефона. Потом на учетную запись привязанную к этому номеру телефона приходит код. Библиотека просит ввести этот код и я его ввожу. Потом приложение распечатывает информацию обо мне.

После завершения приложения у меня возникают следующие проблемы:

  1. Telegram разлогинивается на всех устройствах и приходится логиниться заново.
  2. При повторном запуске приложения оно автоматически не логинится и просит заново ввести номер телефона и код. Но код не приходит и приложение так и остаётся висеть на этапе ввода кода. Приходится прерывать его вручную. При этом файл Test2Session.session создаётся при первом запуске.
  3. Если поменять первый аргумент в функции TelegramClient (имя сессии), то код приходит и приложение логинится, но проблемы из пунктов 1 и 2 повторяются снова.

Подскажите пожалуйста, что я делают не так и как правильно логиниться в Telegram с помощью Telethon?


Ответы (0 шт):