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

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

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

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

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.Channels не определено (тип *model.ChannelList не имеет поля или метода Channels)

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

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

1 ответ

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

for _, channel := range channelList.Channels {

в

for _, channel := range *channelList {
Другие вопросы по тегам