如何通过 Telegram 数据库库 (TDLib) 为 Node.js 请求所有 chats/groups 用户

How to request all chats/groups of the user through Telegram Database Library(TDLib) for Node.js

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

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

就像official docs中解释的那样:

For example, to get a list of chats from the beginning, the offset_order should be equal to 2^63 - 1

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

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

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

如果我将 offset_order 更改为任何其他号码,我会在 return...

中得到一个空的聊天列表

完全迷失在这里,因为every single example我发现和官方文档说的一样,即如何获得前100。

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

  1. 像使用 '9223372036854775807' offset_order 参数一样 getChats
  2. 使用您上次聊天的 ID 执行 getChat 请求。是离线请求,只发给tdlib。
  3. 这里你得到一个带有位置的聊天对象 属性 - 从这里得到一个位置,看起来像这样:
  positions: [
    {
      _: 'chatPosition',
      list: [Object],
      order: '6910658003385450706',
      is_pinned: false
    }
  ],
  1. 下一个请求 - getChats - 使用 (3) 中的 positions[0].order 作为 offset_order
  2. 如果有更多聊天则转到 (2)

来到这里并不容易,所以如果它能帮助像我这样来自 google 的任何人,我会很高兴:)