Невозможно получить список самых важных каналов в Голанге
Я пытаюсь создать бота и получить список каналов. Я использовал пример с ботом в репозитории, и он в основном работает, за исключением части, где он должен получить список каналов.
Либо я делаю что-то глупое, либо 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 {