使用Telethon保存会话时返回None值的技术求助
解决Telethon保存会话返回None的问题
你遇到的client.session.save()返回None的情况,是因为当前使用的是文件会话存储:当你用TelegramClient("session", ...)初始化客户端时,Telethon会自动把会话数据写入本地的session.session文件,此时save()方法仅负责写入文件,不会返回任何值(所以输出None)。
如果需要获取可复制保存的会话字符串,需要改用内存会话(StringSession),修改代码如下:
from telethon.sync import TelegramClient, events from telethon.sessions import StringSession api_id = '*******' api_hash = "**********" phone_number = '+*************' # 初始化内存会话 session = StringSession() client = TelegramClient(session, api_id, api_hash) client.start(phone=phone_number) # 现在save()会返回会话字符串 session_string = client.session.save() print(session_string) # 后续恢复会话时,直接用该字符串初始化: # client = TelegramClient(StringSession(session_string), api_id, api_hash)
如果坚持使用文件会话,无需通过save()返回值判断,只要本地生成了session.session文件,就说明会话已成功保存,下次启动客户端时直接传入相同的文件名即可自动加载会话。
内容的提问来源于stack exchange,提问作者Hasib Badon
相关产品推荐
相关产品推荐

