簡體   English   中英

我在 tdlib 中獲得了 chatId,但我無法獲得消息(tdAPI 或用於 java 的電報數據庫庫)

[英]I get chatId in tdlib but i can not get message (tdAPI or telegram database library for java)

我正在嘗試使用 Java電報數據庫庫(tdlib 或 tdapi),但是當我通過chatId獲取頻道的SearchPublicChat並嘗試獲取消息或查看消息時出現錯誤。

Error{code=6 message= Chat not found}

我不明白為什么我收到上面的chatId為什么當我將它傳遞給另一個方法時我得到那個錯誤請幫助我解決這個問題和那個庫。 謝謝你。

從聊天中獲取最后 15 條消息的示例

String username = "any_chat_public_link";
TdApi.SearchPublicChat searchPublicChat=new TdApi.SearchPublicChat(username);
    TG.getClientInstance().send(searchPublicChat, new Client.ResultHandler() {
        @Override
        public void onResult(TdApi.TLObject object) {                
            TdApi.Chat chat = (TdApi.Chat) object;
            TdApi.Message topMessage = chat.topMessage;

            long chatId = chat.id;

            TdApi.GetChatHistory getChatHistory = new TdApi.GetChatHistory(chatId, topMessage.id, 0, 15);
            TG.getClientInstance().send(getChatHistory, new Client.ResultHandler() {
                @Override
                public void onResult(TdApi.TLObject object) {
                    TdApi.Messages messages = (TdApi.Messages) object;
                }
            });
        }
    });

在通過 id 請求聊天之前,TdLib 必須知道當前會話中的此聊天。 您需要通過@mention_link 搜索此聊天(如果它是公開的),或者獲取整個聊天列表。 此外,如果此聊天發生某些操作(例如來自聊天的新消息、聊天更新...),圖書館將了解聊天。
這也適用於消息、用戶等。只有當 TdLib 知道該實體時,您才能通過 id 請求它。

在接收消息歷史之前,您需要通過發送TdApi.JoinChat訂閱聊天。 程序如下:

1) TdApi.SearchPublicChat
2) TdApi.JoinChat
3) TdApi.GetChatHistory

TdApi.GetChatHistory需要最后一條聊天消息的 id。 可以使用TdApi.GetChat方法獲取。 我使用了 tdlib/example 聊天信息由getMainChatList方法自動更新,然后可以從chats.get(chatId)中獲取

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM