下記のコードで、Slackにメッセージを送信できることを確認しました。
urlの変数はSlack側で生成したものを指定してください。
Golangに慣れていないので、Goっぽくない書き方があるかもしれません。
package main
import (
"bytes"
"encoding/json"
"net/http"
)
type MessageBody struct {
Text string `json:"text"`
}
func main() {
url := "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/xxxxxxxxxxxxxxxxxxxxxxxx"
jsonBody, err := json.Marshal(MessageBody{
Text: "Hello world."
})
if err != nil {
panic("Error: create json body")
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonBody))
if err != nil {
panic("Error: create request")
}
req.Header.Set("Content-Type", "application/json")
res, err := new(http.Client).Do(req)
if err != nil {
panic("Error: post request")
}
err = res.Body.Close()
if err != nil {
panic("Error: close body")
}
}
こちらもおススメ