Telethon Python Ошибка telethon.errors.rpcerrorlist.PhoneCodeExpiredError: The confirmation code has expired (caused by SignInRequest)
Возникает ошибка внутри sign_in метода telethon.errors.rpcerrorlist.PhoneCodeExpiredError: The confirmation code has expired (caused by SignInRequest). Может кто то разбирается с чем это может быть связано и в какой момент он становится устаревшим этот код.
Имею 2 функции последовательно вызываю первую для отправки кода, затем вторую для входа в аккаунт.
async def send_code_to_telegram(session, api_id, api_hash, proxy):
phone = f"+{session}"
print(f"попытка создать сессию: SESSION: {session}; api_id: {api_id};"
f" api_hash: {api_hash}; used_proxy: {proxy};")
client = TelegramClient(str(session), api_id, api_hash, proxy=proxy)
print('создал клиент')
if not client.is_connected():
await client.connect()
# session_str = client.session.save()
sender_code = await client.send_code_request(phone)
# await client.disconnect()
return sender_code.phone_code_hash, client
async def account_launch(client, api_id, api_hash, proxy, phone, code, password, phone_code_hash):
# if not client.is_connected():
# await client.connect()
print(phone_code_hash)
await client.sign_in(phone, code=code, phone_code_hash=phone_code_hash, password=password)
Ответы (1 шт):
Автор решения: kattyflanker
→ Ссылка
Ошибка PhoneCodeExpiredError возникает, если код подтверждения просрочен (обычно через 1–2 минуты).
Важно: используйте один и тот же клиент (TelegramClient) для send_code_request и sign_in, не отключайте и не пересоздавайте его между вызовами — иначе код становится "недействительным".