#java #android #kotlin #telegram #tdlib
#java #Android #kotlin #telegram #tdlib
Вопрос:
Telegram, мне нужно получить список данных канала. Я использую для этого случая TdApi.
Документация: https://javadoc.tlgrm.ru/org/drinkless/td/libcore/telegram/TdApi.html Я делаю это на основе этого примера: https://core.telegram.org/tdlib/tdlib.zip .
В этом примере у меня все еще есть список чатов. Проверь здесь мой способ:
private suspend fun getChatIds(): LongArray {
val getChats = TdApi.GetChats(TdApi.ChatListMain(), Long.MAX_VALUE, 0, 50)
val chats = client.send<TdApi.Chats>(getChats)
return chats.chatIds
}
suspend fun getChats(): List<TdApi.Chat> = getChatIds()
.map { ids -> getChat(ids) }
suspend fun getChat(chatId: Long): TdApi.Chat {
return client.send<TdApi.Chat>(TdApi.GetChat(chatId))
}
enter code here
Я попытался изменить это, добавив classe из документации. Канал, полный канал, полный канал. Я добавил GetChannelFull в класс функций. В выпуске я фильтрую чаты по isChannel и пытаюсь получить канал по supergroupId.
suspend fun getChannels(): List<TdApi.ChannelFull> {
return getChats().filter {chat -> chat.type is TdApi.ChatTypeSupergroup amp;amp; (chat.type as TdApi.ChatTypeSupergroup).isChannel }
.map { chat -> getChannel((chat.type as TdApi.ChatTypeSupergroup).supergroupId) }
}
Но я получаю сообщение об ошибке: не удалось проверить ‘request.function’.
Если вы знаете, в чем проблема, пожалуйста, помогите мне.
Ответ №1:
Я нашел решение. В примере есть класс SupergroupFullInfo и ChatType для класса Chat. Я буду использовать suprgroupId из ChatType и GetSupergroupFullInfo для получения необходимой информации.