3

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

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

就像官方文档中解释的那样:

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

结果,我从用户列表的顶部获得了 100 个聊天。

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

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

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

在这里完全迷失了,因为我发现的每个 示例都与官方文档说的相同,即如何获得前 100 个

4

1 回答 1

0

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

  1. getChats像处理'9223372036854775807' offset_order参数一样做
  2. 使用您getChat最后一次聊天的 id 请求。这是一个离线请求,只针对 tdlib。
  3. 在这里你得到一个带有位置属性的聊天对象 - 从这里得到一个位置,看起来像这样:
  positions: [
    {
      _: 'chatPosition',
      list: [Object],
      order: '6910658003385450706',
      is_pinned: false
    }
  ],
  1. 下一个请求 - getChats- 使用positions[0].orderfrom (3) asoffset_order
  2. 转到 (2) 如果有更多聊天

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

于 2020-12-27T14:23:10.140 回答