Api Telegram.org错误:';无效的msgs_确认查询';,u';错误代码';:-500

Api Telegram.org错误:';无效的msgs_确认查询';,u';错误代码';:-500,api,telegram,Api,Telegram,我正在将msgs\u acks执行回电报服务器,以便发送“内容”消息并收到响应。在第一次尝试确认第一条内容消息(initConnection使用getNearestDc,由invokeWithLayer包装)之后,我立即得到了上述错误。下面列出了事件的顺序。我在不按顺序做什么 传出消息的id是:6337647283454888960L,这是我正在尝试确认的-->被发送到服务器,最简单的解释方法如下: 设置一个dispatch\u timer来处理挂起的消息ID,它应该每隔2-3分钟启动一次 您收

我正在将
msgs\u acks
执行回电报服务器,以便发送“内容”消息并收到响应。在第一次尝试确认第一条内容消息(
initConnection
使用
getNearestDc
,由
invokeWithLayer
包装)之后,我立即得到了上述错误。下面列出了事件的顺序。我在不按顺序做什么


传出消息的id是:6337647283454888960L,这是我正在尝试确认的<代码>-->被发送到服务器,
最简单的解释方法如下:

  • 设置一个
    dispatch\u timer
    来处理挂起的消息ID,它应该每隔2-3分钟启动一次
  • 您收到的每个入站邮件都有一个msg_id
  • 在主接收循环中,将这些消息id整理成
    msg\u id\u列表
  • 每次向服务器发送新请求时,如果您的
    msg\u id\u列表中有挂起的msg\u id
    ,请将它们添加到您将要在邮件容器中发送的邮件中。清除
    msg\u id\u列表
  • 如果
    dispatch\u计时器
    启动,并且您有
    msg\u id\u列表
    count>0
    ,则简单发送
    msgs\u ack(msg\u id\u列表)
    。清除
    msg\u id\u列表

  • 我使用此方法成功地处理了msg_acks,没有任何问题。

    结果是
    错误消息“无效msg_ack query”
    与序列号无关。我不正确地序列化了msg id向量,因此查询确实无效


    一旦我纠正了错误,我就得到了另一个错误:
    'error\u code':64
    ,这表示容器无效。至少它知道这是一个容器!如果遇到问题,我会尝试一些方法来纠正容器,并发布另一个问题。

    这里非常安静,没有人有答案吗?发送消息确认应该非常简单。看下面。我可以试试。你能告诉我为什么我上面的逻辑不起作用吗?我的反复思考是,如果我能得到最简单的案例,如上文所述,我可以继续处理更复杂的案例,如你的建议。我上面的代码似乎正是文档中要求的代码,但我肯定遗漏了什么。为什么不将msg_ack作为下一个请求的一部分包含在容器中?如果这是唯一可行的解决方案,那么我必须这样做。我不是这样开始的,因为容器比简单的请求更复杂,所以我认为先简单,然后朝着更复杂的方向发展会验证文档并增加我的理解。如果您的建议(我很欣赏)是正确的过程,那么文档需要更新。您会注意到,Telegram使用容器来存储其许多消息,这使它们能够在一个RPC调用中将消息打包在一起。如果您实现了容器,则可以执行相同的操作,然后有一个send_message变体,当您发送多条消息时,该变体会自动使用容器。我就是这样实现我的
    --> ('method_call: ', 'invokeWithLayer', {'query': ['initConnection', 'query': 'getNearestDc']})
    (' message_id:       ', 6337647283454888960L)
    
    <--('TL deserialize: x = ', {'MessageContainer': [
    {'msg': {u'new_session_created': {u'first_msg_id': 6337647283454888960L, u'unique_id': -8353387387127432890L, u'server_salt': -717652021221374449L}}, 'seqno': 1, 'msg_id': 6337647285940375553L}, 
    {'msg': {u'msgs_ack': {u'msg_ids': [6337647283454888960L]}}, 'seqno': 2, 'msg_id': 6337647285940441089L}]})
    
    <--('TL deserialize: x = ', {u'req_msg_id': 6337647283454888960L, u'result': {u'nearest_dc': 3, u'country': 'US', u'this_dc': 1}})
    
    -->('method_call: ', 'msgs_ack', {'msg_ids': [6337647283454888960L]})
    (' message_id:       ', 6337647284623120384L)
    
    ('TL deserialize: x = ', {u'req_msg_id': 6337647284623120384L, u'result': {u'error_message': 'Invalid msgs_ack query', u'error_code': -500}})