Невозможно получить список самых важных каналов в golang

Я пытаюсь создать бота и получить список каналов.
Я использовал пример бота в репозитории, и он в основном работает, за исключением той части, где он должен получить список каналов.

Либо я делаю что-то глупое, либо GETCHANNELS API действительно не работает так, как описано в bot_sample.Вперед.
Я сделал меньшую отдельную функцию, чтобы проверить эту часть.

Добавление кода здесь для лучшей читаемости:

func mattermostPrintChannels(client *mattermost.Client) {
    channelsResult, err := client.GetChannels("")
    if err != nil {
        fmt.Print("Couldn't get channels: ", err)
        return
    }
    channelList := channelsResult.Data.(*mattermost.ChannelList)
    fmt.Print("Channels:")
    for _, channel := range channelList.Channels {
        fmt.Printf("%s -> %s", channel.Id, channel.DisplayName)
    }
}

Этот код дает мне ошибку:

./ mattermost.go: 30: channelList.Каналы неопределенные (тип
*модель.ChannelList не имеет каналов поля или метода)

Теперь, если я просто распечатаю содержимое переменной ChannelList (используя spew), я получу следующее:

channelList:  :  ([]interface {}) (len=1 cap=1) {
 (*model.ChannelList)(<nil>)
}

1 ответ

  1. Джимб прав. model.ChannelListТип раньше был структурой, но недавно он изменился на []*model.Channel. Вы захотите измениться

    for _, channel := range channelList.Channels {
    

    к

    for _, channel := range *channelList {