我如何恢复 telethon 电报中的旧会话并再次连接(无需再次发送代码))
how i can restore sessions old in telethon telegram and connect this again(without send again code))
我使用此脚本在 telethon 中连接和创建会话
from telethon import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.utils import get_input_peer
api_id = 7****
api_hash = 'ef584d*****************'
client = TelegramClient('+15159947451', api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request('+15159947451')
client.sign_in('+15159947451', cod)
有了这个 cod,我可以在这个号码电报中正常登录并创建文件:+15159947451.session.
现在我关闭并断开连接,我怎样才能用这个文件再次登录这个号码 +15159947451.session。
我使用这个代码但是这个代码有错误:
from telethon import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.utils import get_input_peer
api_id = 7****
api_hash = 'ef584d180eee*******************'
number='+15152934803'
client = TelegramClient('00', api_id, api_hash)
client.session.try_load_or_create_new(session_user_id='+15159947451')
client.connect()
但是我有这个错误
raise error
telethon.errors.RPCError: (RPCError(...), 'AUTH_KEY_UNREGISTERED (401): The key is not registered in the system.')
问题出在这一行:
client = TelegramClient('+15xxxxxxxxx', api_id, api_hash)
您不必将 phone 号码作为第一个参数传递。您必须传递会话的名称,例如 'myname'.
你明白了:
telethon.errors.RPCError: (RPCError(...), 'AUTH_KEY_UNREGISTERED (401): The key is not registered in the system.')
因为您更改了会话的名称(现在称为“00”),而且您还没有在那个会话上登录。所以为了简单的解决你的问题:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request('+15xxxxxxxxx')
client.sign_in('+15xxxxxxxxx', cod)
然后删除 .send_code_request(...)
行:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
请注意,如果您更改 'some_name' 的一些 .session
还不存在,您将不得不重新创建它。此外,您可以将 .session
文件重命名为您想要的任何名称,并将其名称用作参数(因为它已经存在)。
from telethon import TelegramClient
# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
api_id = ****** # Your api_id
api_hash = '********************************' # Your api_hash
phone_number = '+989122594574' # Your phone number
client = TelegramClient(phone_number, api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone_number)
client.sign_in(phone_number, input('Enter the code: '))
client.send_message('amir2b', 'Hello! Amir Bashiri')
我使用此脚本在 telethon 中连接和创建会话
from telethon import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.utils import get_input_peer
api_id = 7****
api_hash = 'ef584d*****************'
client = TelegramClient('+15159947451', api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request('+15159947451')
client.sign_in('+15159947451', cod)
有了这个 cod,我可以在这个号码电报中正常登录并创建文件:+15159947451.session.
现在我关闭并断开连接,我怎样才能用这个文件再次登录这个号码 +15159947451.session。
我使用这个代码但是这个代码有错误:
from telethon import TelegramClient
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.utils import get_input_peer
api_id = 7****
api_hash = 'ef584d180eee*******************'
number='+15152934803'
client = TelegramClient('00', api_id, api_hash)
client.session.try_load_or_create_new(session_user_id='+15159947451')
client.connect()
但是我有这个错误
raise error
telethon.errors.RPCError: (RPCError(...), 'AUTH_KEY_UNREGISTERED (401): The key is not registered in the system.')
问题出在这一行:
client = TelegramClient('+15xxxxxxxxx', api_id, api_hash)
您不必将 phone 号码作为第一个参数传递。您必须传递会话的名称,例如 'myname'.
你明白了:
telethon.errors.RPCError: (RPCError(...), 'AUTH_KEY_UNREGISTERED (401): The key is not registered in the system.')
因为您更改了会话的名称(现在称为“00”),而且您还没有在那个会话上登录。所以为了简单的解决你的问题:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request('+15xxxxxxxxx')
client.sign_in('+15xxxxxxxxx', cod)
然后删除 .send_code_request(...)
行:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
请注意,如果您更改 'some_name' 的一些 .session
还不存在,您将不得不重新创建它。此外,您可以将 .session
文件重命名为您想要的任何名称,并将其名称用作参数(因为它已经存在)。
from telethon import TelegramClient
# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
api_id = ****** # Your api_id
api_hash = '********************************' # Your api_hash
phone_number = '+989122594574' # Your phone number
client = TelegramClient(phone_number, api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone_number)
client.sign_in(phone_number, input('Enter the code: '))
client.send_message('amir2b', 'Hello! Amir Bashiri')