繁体   English   中英

如何通过 Node.js 的 Telegram 数据库库(TDLib)请求用户的所有聊天/群组

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

电报的官方例子解释说,为了使用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 个。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM