2017-06-17 32 views
0

我使用这个脚本的连接,并创建活动上我怎么可以恢复旧的电视马拉松电报会议,并重新连接这(不再次发送代码))

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) 

这种鳕鱼的会议我可以登录这个好号码电报并创建文件:+ 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.') 
+0

你怎么会不满?您是否最后称Telethon有任何不协调功能? – apadana

回答

1

的问题是这一行:

client = TelegramClient('+15xxxxxxxxx', api_id, api_hash) 

你不必须将您的电话号码作为第一个参数。您必须传递会话的名称,例如'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文件重命名为您想要的任何名称,并将其名称用作参数(因为它已经存在)。

+0

@netdevil这是正确的答案,感谢Lonami的答案。我很快就会清除我的。去Telethon! – apadana

+0

@Lonami关于Telethon的伟大工作。但是我在Flask中实现登录/授权时遇到了问题。 – king

1
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') 
+1

欢迎来到SO。只有代码答案才被认为是很好的答案,请发布文字说明问题的原因以及代码如何解决问题。 – Fejs

相关问题