Python 响应telegram.org API中创建的新会话消息

Python 响应telegram.org API中创建的新会话消息,python,telegram,Python,Telegram,在我的电报客户端中,我经历了创建有效会话的看似典型的过程: 生成一个随机会话\u id 创建一个身份验证密钥 使用getNearestDc调用initConnection 切换到最近的DC,其中包含一个新的随机会话id和 认证密钥 尝试一个sendCode命令,这将导致另一个切换到 正确DC 在这个过程中的不同时刻,我从服务器接收到MessageContainers,指示状态和MsgAcks等。这是预期的,我现在正在正确解码它们。其中一些消息的类型为创建的new\u session\u,如下所示

在我的电报客户端中,我经历了创建有效会话的看似典型的过程:

  • 生成一个随机会话\u id
  • 创建一个身份验证密钥
  • 使用
    getNearestDc调用
    initConnection
  • 切换到最近的DC,其中包含一个新的随机会话id和 认证密钥
  • 尝试一个
    sendCode
    命令,这将导致另一个切换到 正确DC
  • 在这个过程中的不同时刻,我从服务器接收到
    MessageContainers
    ,指示状态和
    MsgAcks
    等。这是预期的,我现在正在正确解码它们。其中一些消息的类型为创建的
    new\u session\u
    ,如下所示:

    {'msg': {u'new_session_created': {u'first_msg_id': 6327252208304908288L, u'unique_id': -4911750325772918873L, u'server_salt': 6799011375684265530L}}, 'seqno': 1, 'msg_id': 6327252210221112321L}
    
    我当前的服务器与此邮件中的服务器不同。我需要改用新的盐吗?那unique_id呢?是我的新会话_id还是我忽略了这些消息


    在整理完所有这些之后,我需要为下次客户端启动保存会话的哪些部分?会话id、身份验证密钥、身份验证密钥id?

    保存并重新使用您刚刚收到的新salt,用于此会话中的下一个请求

    要进行Subquest登录,您只需使用
    会话id
    最近登录的会话id
    身份验证键


    Auth_key_id
    是根据
    Auth_key
    计算出来的,因此在进行后续登录时,您可以选择存储它,也可以不选择存储它

    我是连接到最后一个DC还是默认DC,通常是2?如果我连接到默认的DC,验证密钥将对该DC无效,对吗?不。想法是您连接到从初始连接确定的最近DC。您首先在DC 2中创建验证密钥,然后在该DC中运行initconnection,同时请求最近的DC。如果您最近的DC是2,如果它不同,那么这很好,那么您最好在新DC中创建一个新的身份验证,并在该DC中完成授权。将该DC存储为主DC,然后将其与保存的salt、会话以及与该DC相对应的auth_密钥/auth_密钥id一起使用。我总是在启动时进行初始化连接如果创建新会话,则需要从seq_no=0开始,否则从前面的序号开始。我只是觉得总是用session和序号重新开始更方便