フロッピーディスクの残骸

フロッピーディスクを分解するのって楽しいよね

GoLang勉強会に参加してきた

土曜日のこと。

なんとなくGoLang勉強会に参加してきた。2回目の実施らしい。
今回は、もくもく勉強会ということで
Githubのissueにやること書いてそれをやるという感じでした。

最初、hugoのソースでも読もうかと思ったけど、
最初からソース読みに行くのは敷居が高いかなということで
A Tour of Goをやってました。

少し読んだ後に、今まで作ったスクリプトをGoで作ってみようかなという気になったので
ここを見ながら
GoでZabbixのアラート通知をSlackに流すスクリプト作成してみました。(写経ですが...)

package main

import (
        "fmt"
        "os"
        "encoding/json"
        "io/ioutil"
        "net/http"
        "net/url"
)

var (
  IncomingWebhookUrl string = ""#Webhook URL
)

type Slack struct {
        Text       string `json:"text"`
        Username   string `json:"username"`
        Icon_emoji string `json:"icon_emoji"`
        Icon_url   string `json:"icon_url"`
        Channel    string `json:"channel"`
}

func main() {
        params, _ := json.Marshal(Slack{
                string(os.Args[1]),
                "bot君",
                ":ghost:",
                "",
                "#general"})

        resp, _ := http.PostForm(
                IncomingWebhookUrl,
                url.Values{"payload": {string(params)}},
        )

        body, _ := ioutil.ReadAll(resp.Body)
        defer resp.Body.Close()

        println(string(body))
}

こんな感じでしょうか。
Zabbixの設定は割愛します。

次回も参加できたら
何か書いてみようかな。

おしま。