[英]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.