回复 telegram.org API 中的 new_session_created 条消息
Responding to new_session_created messages in the telegram.org API
在我的电报客户端中,我经历了看似典型的创建有效会话的过程:
- 随机生成session_id
- 创建授权密钥
- 用
getNearestDc
调用 initConnection
- 切换到最近的DC,这涉及到一个新的随机session_id和
auth_key
- 尝试
sendCode
命令,这会导致另一个切换到
正确的 DC
在此过程中的不同时间点,我从服务器收到指示状态的 MessageContainers
和 MsgAcks
等。这是预期的,我现在正在正确解码它们。其中一些消息的类型为 new_session_created
,如下所示:
{'msg': {u'new_session_created': {u'first_msg_id': 6327252208304908288L, u'unique_id': -4911750325772918873L, u'server_salt': 6799011375684265530L}}, 'seqno': 1, 'msg_id': 6327252210221112321L}
我当前的 server_salt 与此消息中的不同。我需要改用新盐吗? unique_id 是我的新 session_id 还是忽略这些消息?
解决所有这些问题后,下次客户端启动时我需要保存会话的哪一部分? session_id, auth_key, auth_key_id?
保存并重新使用您刚刚收到的新盐,用于本次会话中的下一个请求。
要进行后续登录,您只需要 session_id
、recent_salt
和 auth_key
。
Auth_key_id
是根据 auth_key
计算得出的,因此您可以选择存储它,也可以不选择存储它
在我的电报客户端中,我经历了看似典型的创建有效会话的过程:
- 随机生成session_id
- 创建授权密钥
- 用
getNearestDc
调用 - 切换到最近的DC,这涉及到一个新的随机session_id和 auth_key
- 尝试
sendCode
命令,这会导致另一个切换到 正确的 DC
initConnection
在此过程中的不同时间点,我从服务器收到指示状态的 MessageContainers
和 MsgAcks
等。这是预期的,我现在正在正确解码它们。其中一些消息的类型为 new_session_created
,如下所示:
{'msg': {u'new_session_created': {u'first_msg_id': 6327252208304908288L, u'unique_id': -4911750325772918873L, u'server_salt': 6799011375684265530L}}, 'seqno': 1, 'msg_id': 6327252210221112321L}
我当前的 server_salt 与此消息中的不同。我需要改用新盐吗? unique_id 是我的新 session_id 还是忽略这些消息?
解决所有这些问题后,下次客户端启动时我需要保存会话的哪一部分? session_id, auth_key, auth_key_id?
保存并重新使用您刚刚收到的新盐,用于本次会话中的下一个请求。
要进行后续登录,您只需要 session_id
、recent_salt
和 auth_key
。
Auth_key_id
是根据 auth_key
计算得出的,因此您可以选择存储它,也可以不选择存储它