簡體   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