【学習golangシリーズ】slack APIを使う2

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

前回のポストに引き続き、チャンネル一覧の取得。

前回に引き続き、こちらのライブラリを使った。

nlopes/slack

package main

import (

    "github.com/nlopes/slack"
    "fmt"
)

var token = "Slack Token"
var api = slack.New(token)

// Slackにチャンネルを指定してポストする関数
func PostMessage(channel string, message string) {

    params := slack.PostMessageParameters{
        Username: "umentu_botter",
        IconURL: "アイコンのURL",
    }

    api.PostMessage(channel, message, params)
}


// チャンネル名のリストを取得する関数
func getChannelNameList() ([]string, error) {

    channels, err := api.GetChannels(false)
    channel_name_list := []string{}

    if err != nil {
        return nil, err
    }

    for _, channel := range channels{
        channel_name_list = append(channel_name_list, channel.Name)
    }

    return channel_name_list, nil
}

func main(){
    //PostMessage("golang", "Golang Test")

    // チャンネル名を取得
    channel_name_list, err := getChannelNameList()

    if err != nil {
        fmt.Println(err)
        return
    }

    for _, channel_name := range channel_name_list{
        fmt.Println(channel_name)
    }
}

実行結果

次回はWebhook使ってみようかな。