Задать вопрос
@ubirust

Как сохранить сессию Telethon и не вводить код подтверждения заново?

Есть упрощенный код для понимания проблемы:

from telethon import TelegramClient, events

api_id = 2*****9
api_hash = 'ee****************74'

client = TelegramClient("Resend", api_id, api_hash)

@client.on(events.NewMessage(chats=-10*********2))
async def normal_handler(event):
    await client.send_message(-10********3, event.message)

client.start()
client.run_until_disconnected()


После его запуска, я авторизуюсь, пишет что успешно зареган. И как только код отлавливает сообщение - из всех устройств у меня выходит из аккаунта(соответственно и код тоже перестает работать).

Пробовал также строковые сеансы. Все делаю по инструкции:

string = '1aaNk8EX-YRfwoRsebUkugFvht6DUPi_Q25UOCzOAqzc...'
with TelegramClient(StringSession(string), api_id, api_hash) as client:
    client.loop.run_until_complete(client.send_message('me', 'Hi'))


Но когда я запускаю скрипт, то снова просит меня вести телефон для отправки кода. А по факту так не должно быть, ключ в string для этого и нужен, чтобы не вводить код. P.s. rак его получил, тоже по инструкции:
from telethon.sync import TelegramClient
from telethon.sessions import StringSession

with TelegramClient(StringSession(), api_id, api_hash) as client:
    print(client.session.save())


Как можно сделать так, чтобы telethon повторно не просил код подтверждения? Не пойму в чем проблема
  • Вопрос задан
  • 2149 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
нужно передать сюда тедефон
client.start(phone=PHONE)
тогда телетон сам сохранит и восстановит сессию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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