0

我正在尝试创建一个机器人并检索频道列表。我在存储库中使用了机器人示例,它大部分都在工作,除了它必须获取频道列表的部分。

要么我在做一些愚蠢的事情,要么GetChannels API真的不像 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 undefined(类型 *model.ChannelList 没有字段或方法 Channels)

现在,如果我只打印 ChannelList 变量的内容(使用 spew),我会得到以下信息:

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

1 回答 1

0

JimB 是正确的。该model.ChannelList类型曾经是一个结构,但它最近更改为[]*model.Channel. 你会想要改变

for _, channel := range channelList.Channels {

for _, channel := range *channelList {
于 2016-11-07T15:07:57.023 回答