Skip to content
Advertisement

how to get channel’s data list from Telegram by TDLib?

Telegram, I need to get channel’s data list. I use for this case TdApi.

Documentation: https://javadoc.tlgrm.ru/org/drinkless/td/libcore/telegram/TdApi.html I do it based on this example: https://core.telegram.org/tdlib/tdlib.zip.

I still got chat’s list by this example. Check here my way:

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

I tried to modificate this by adding classe from documentation. Channel, ChannelFull GetChannelFull. I added GetChannelFull into Function class. In the issue I filter chats by isChannel and try to get Channel by supergroupId.

suspend fun getChannels(): List<TdApi.ChannelFull> {
        return getChats().filter {chat ->  chat.type is TdApi.ChatTypeSupergroup && (chat.type as TdApi.ChatTypeSupergroup).isChannel }
            .map { chat -> getChannel((chat.type as TdApi.ChatTypeSupergroup).supergroupId) }
    }

But, I get error: Check ‘request.function’ failed.

Details: enter image description here

If you know what is that problem, please, help me.

Advertisement

Answer

I’ve found a resolve. In example there is SupergroupFullInfo class, and ChatType for Chat class. I will use suprgroupId from ChatType and GetSupergroupFullInfo for getting needed info.

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement