如何通过 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...
中得到一个空的聊天列表
有同样的问题,尝试了不同的方法并重新阅读了很长时间的文档,这是一个决定:
- 像使用
'9223372036854775807'
offset_order
参数一样 getChats
- 使用您上次聊天的 ID 执行
getChat
请求。是离线请求,只发给tdlib。
- 这里你得到一个带有位置的聊天对象 属性 - 从这里得到一个位置,看起来像这样:
positions: [
{
_: 'chatPosition',
list: [Object],
order: '6910658003385450706',
is_pinned: false
}
],
- 下一个请求 -
getChats
- 使用 (3) 中的 positions[0].order
作为 offset_order
- 如果有更多聊天则转到 (2)
来到这里并不容易,所以如果它能帮助像我这样来自 google 的任何人,我会很高兴:)
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...
中得到一个空的聊天列表有同样的问题,尝试了不同的方法并重新阅读了很长时间的文档,这是一个决定:
- 像使用
'9223372036854775807'
offset_order
参数一样getChats
- 使用您上次聊天的 ID 执行
getChat
请求。是离线请求,只发给tdlib。 - 这里你得到一个带有位置的聊天对象 属性 - 从这里得到一个位置,看起来像这样:
positions: [
{
_: 'chatPosition',
list: [Object],
order: '6910658003385450706',
is_pinned: false
}
],
- 下一个请求 -
getChats
- 使用 (3) 中的positions[0].order
作为offset_order
- 如果有更多聊天则转到 (2)
来到这里并不容易,所以如果它能帮助像我这样来自 google 的任何人,我会很高兴:)