【问题标题】:How to request all chats/groups of the user through Telegram Database Library(TDLib) for Node.js如何通过 Node.js 的电报数据库库(TDLib)请求用户的所有聊天/组
【发布时间】:2019-04-06 18:54:10
【问题描述】:

来自电报的官方例子解释说,为了使用getChats()命令,需要设置两个参数'offset_order'和'offset_chat_id'。 我正在使用这个node.js wrapper for the TDLib。 因此,当我使用带有以下参数的getChats() 时:

'offset_order': '9223372036854775807',
'offset_chat_id': 0,
'limit': 100

就像official docs中解释的那样:

例如,要从一开始就获取聊天列表, offset_order 应该等于 2^63 - 1

因此,我从用户列表的顶部获得了 100 个聊天记录。

我无法理解的是如何遍历该列表?如何使用 API 分页?

当我尝试从前 100 个中间输入合法的 chat_id 时,我仍然得到相同的前 100 个,所以看起来没什么区别。

如果我将 offset_order 更改为任何其他数字,我会得到一个空的聊天列表作为回报...

在这里完全迷路了,因为everysingleexample我发现和官方文档说的一样,即如何获得前100个。

【问题讨论】:

    标签: node.js api node-telegram-bot-api tdlib


    【解决方案1】:

    遇到了同样的问题,尝试了不同的方法,又重新阅读了很长时间的文档,这里是一个决定:

    1. getChats 就像使用 '9223372036854775807' offset_order 参数一样
    2. getChat 请求与您最后一次聊天的ID。这是一个离线请求,只针对 tdlib。
    3. 在这里您会获得一个带有位置属性的聊天对象 - 从这里获得一个位置,如下所示:
      positions: [
        {
          _: 'chatPosition',
          list: [Object],
          order: '6910658003385450706',
          is_pinned: false
        }
      ],
    
    1. 下一个请求 - getChats - 使用 (3) 中的 positions[0].order 作为 offset_order
    2. 如果有更多聊天,请转到 (2)

    做到这一点并不容易,所以如果它可以帮助像我这样来自谷歌的人,我会很高兴:)

    【讨论】:

    • 谢谢,时间久了,无法再检查解决方案的有效性。我会奖励答案,相信它有效。
    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 2016-10-03
    • 2020-09-11
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2023-03-24
    • 2020-07-06
    相关资源
    最近更新 更多