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 просит ввести номер телефона. Потом на учетную запись привязанную к этому номеру телефона приходит код. Библиотека просит ввести этот код и я его ввожу. Потом приложение распечатывает информацию обо мне.
После завершения приложения у меня возникают следующие проблемы:
- Telegram разлогинивается на всех устройствах и приходится логиниться заново.
- При повторном запуске приложения оно автоматически не логинится и просит заново ввести номер телефона и код. Но код не приходит и приложение так и остаётся висеть на этапе ввода кода. Приходится прерывать его вручную. При этом файл Test2Session.session создаётся при первом запуске.
- Если поменять первый аргумент в функции TelegramClient (имя сессии), то код приходит и приложение логинится, но проблемы из пунктов 1 и 2 повторяются снова.
Подскажите пожалуйста, что я делают не так и как правильно логиниться в Telegram с помощью Telethon?