SlackにGo言語でMessageをPostするコードを書いたので備忘録です。
Slackにエラーログを送ったり、アラート通知やリソース情報通知などに活用する。
- 開発環境
- Mac
- go1.11.2
- Slack: WebHookURLが必要
- SlackにPostするときにAPI仕様を確認する ( Attachment structure )
- GoでSlackにPostするために、以下のパッケージを利用した
SlackPost.go
package main
import (
"github.com/ashwanthkumar/slack-go-webhook"
"os"
)
const (
WEBHOOKURL = "https://hooks.slack.com/services/XXXX"
CHANNEL = "dev"
USERNAME = "GoBot"
)
func main() {
PostSlack("HelloWorld!!")
}
func PostSlack(msg string) {
field1 := slack.Field{Title: "Message", Value: msg}
field2 := slack.Field{Title: "AnythingKey", Value: "AnythingValue"}
attachment := slack.Attachment{}
attachment.AddField(field1).AddField(field2)
color := "good"
attachment.Color = &color
payload := slack.Payload{
Username: USERNAME,
Channel: CHANNEL,
Attachments: []slack.Attachment{attachment},
}
err := slack.Send(WEBHOOKURL, "", payload)
if err != nil {
os.Exit(1)
}
}
Slackへの通知結果
まとめ
Go言語を使って、SlackにPostするコードを作成しました。