2016-11-03 8 views
0

私はボットを作成し、チャンネルのリストを取得しようとしています。 私はbot exampleをリポジトリに使用しました。ほとんどの場合、チャネルのリストを取得する必要がある部分を除いて動作しています。golangの重要なチャンネルのリストを取得できません

私は何かばかげているか、GetChannels APIがbot_sample.goに記載されているように実際には機能しません。 私はその部分をテストするために小さいseparate functionを作った。

読みやすくするために、ここでのコードを追加:

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) 
    } 
} 

このコードは私にエラーを与える:私はちょうど(スピューを使用して)ChannelList変数の内容を印刷する場合

./mattermost.go:30: channelList.Channels undefined (type *model.ChannelList has no field or method Channels)

は今、私が取得以下:

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

for _, channel := range channelList.Channels { 

を変更したいと思います。ドキュメントを見ると、['ChannelList'](https://godoc.org/github.com/mattermost/platform/model#ChannelList)は' [] * Channel'スライスなので、その範囲を超えています。 – JimB

答えて

0

ジムBが正しい。 model.ChannelListタイプは構造体であったが、最近は[]*model.Channelに変更されました。あなたはそれはあなたが見ている例は、単に古いものと古くなっている可能性があります

for _, channel := range *channelList { 
関連する問題