как получить список данных канала из Telegram с помощью TDLib?

#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 для получения необходимой информации.