My Note

自己理解のためのブログ

GoでSlackにPostする

SlackにGo言語でMessageをPostするコードを書いたので備忘録です。 Slackにエラーログを送ったり、アラート通知やリソース情報通知などに活用する。

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

通知結果

f:id:yhidetoshi:20190617214939p:plain
go-slack

まとめ

Go言語を使って、SlackにPostするコードを作成した。次はLambdaで動かす記事は別途作成したいと思います。