Не удалось получить текущее состояние: AuthKeyUnregisteredError («Ключ не зарегистрирован в системе») - PullRequest
0 голосов
/ 03 ноября 2019

Я использую Telethon для подключения к Telegram и извлекаю некоторые сообщения для запуска аналитики. Я написал оригинальный код в 2018 году, и он работал отлично. Он подключился, прочитал с канала и позволил мне читать сообщения, как я ожидал. Недавно я снова попытался запустить скрипт, и теперь он продолжает спрашивать у меня номер телефона и код аутентификации, несмотря на то, что файл сеанса был создан. В прошлом меня только один раз спрашивали номер телефона и код аутентификации, затем был создан файл сеанса, и мне не пришлось повторяться. Теперь я обнаруживаю, что делаю это каждый раз, когда запускаю программу.

Следует отметить, что readChannel.session создается в моем локальном каталоге и имеет следующие свойства

$ file readChannel.session
readChannel.session: SQLite 3.x database, last written using SQLite version 3021000

Я включил ведение журнала и получилследующее

DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168064255177608 to InvokeWithLayerRequest (3601b10)
DEBUG:telethon.network.mtprotolayer:Packed 1 message(s) in 68 bytes for sending
INFO:telethon.network.mtprotosender:Broken authorization key; resetting
DEBUG:telethon.network.mtprotosender:Closing current connection...
DEBUG:telethon.network.mtprotosender:Awaiting for the send loop before reconnecting...
DEBUG:telethon.network.mtprotosender:Awaiting for the receive loop before reconnecting...
DEBUG:telethon.network.mtprotosender:Closing current connection...
INFO:telethon.network.mtprotosender:Connecting to 149.154.167.92:443/TcpFull...
DEBUG:telethon.network.mtprotosender:Connection attempt 1...
DEBUG:telethon.network.mtprotosender:Connection success!
DEBUG:telethon.network.mtprotosender:New auth_key attempt 1...
DEBUG:telethon.network.mtprotosender:Starting send loop
DEBUG:telethon.network.mtprotosender:Starting receive loop
INFO:telethon.network.mtprotosender:Connection to 149.154.167.92:443/TcpFull complete!
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
INFO:telethon.client.updates:Asking for the current state after reconnect...
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168067804342024 to InvokeWithLayerRequest (3601b10)
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168067820286504 to GetStateRequest (3601f50)
DEBUG:telethon.network.mtprotolayer:Packed 2 message(s) in 112 bytes for sending
DEBUG:telethon.network.mtprotosender:Handling bad salt for message 6755168067844913236
DEBUG:telethon.network.mtprotosender:2 message(s) will be resent
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068088576072 to InvokeWithLayerRequest (3601b10)
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068116633168 to GetStateRequest (3601f50)
DEBUG:telethon.network.mtprotolayer:Packed 2 message(s) in 112 bytes for sending
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068176325552 to MsgsAck (394c0f0)
DEBUG:telethon.network.mtprotolayer:Packed 1 message(s) in 36 bytes for sending
DEBUG:telethon.network.mtprotosender:Handling container
DEBUG:telethon.network.mtprotosender:Handling new session created
DEBUG:telethon.network.mtprotosender:Handling acknowledge for [6755168068088576072, 6755168068116633168]
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
DEBUG:telethon.network.mtprotosender:Handling RPC result for message 6755168068116633168
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
INFO:telethon.client.updates:Failed to get current state: AuthKeyUnregisteredError('The key is not registered in the system')
DEBUG:telethon.network.mtprotosender:Handling RPC result for message 6755168068088576072
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068470441572 to MsgsAck (3601ed0)
DEBUG:telethon.network.mtprotolayer:Packed 1 message(s) in 36 bytes for sending
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068486387960 to MsgsAck (3601e10)
DEBUG:telethon.network.mtprotolayer:Assigned msg_id = 6755168068510330908 to GetStateRequest (3601d10)
DEBUG:telethon.network.mtprotolayer:Packed 2 message(s) in 112 bytes for sending
DEBUG:telethon.network.mtprotosender:Handling RPC result for message 6755168068510330908
DEBUG:telethon.network.mtprotosender:Receiving items from the network...
Please enter your phone (or bot token):

Может показаться, что проблема связана с INFO: telethon.client.updates: не удалось получить текущее состояние: AuthKeyUnregisteredError ('Ключ не зарегистрирован в системе')

Вот код

api_id = xxx
api_hash = xxx
channel_name = xxx
client = TelegramClient('readChannel', api_id, api_hash)

# Connect to telegram
try:
    client.connect()
    client.start()
except:
    print ("Could not connect to telegram")

# Connect to channel and get posts
try:
    channel_entity=client.get_entity(channel_name)
    posts = client(GetHistoryRequest(
        peer=channel_entity,
        limit=1000000,
        offset_date=0,
        offset_id=0,
        max_id=0,
        min_id=0,
        add_offset=0,
        hash=0))
except:
    print ("Could not connect to channel ", channel_name)

Ожидается: я ожидал, что у меня спросят номер телефона и код аутентификации один раз, а затем он будет считан из файла сессии.

Фактически: теперь я обнаруживаю, что делаю это каждый раз, когда запускаю программу (предоставив свой номер телефона и код аутентификации).

...