[Go] Slack API を使ってメッセージを投稿する
作成日: 2021年08月22日
Slack API を使ってメッセージを投稿する Go のサンプルコードです。サンプルコードの簡略化のためエラー処理は簡略化しています。
package main
import (
"net/http"
"net/url"
"strings"
)
func main() {
formValues := url.Values{}
formValues.Add("text", "Hello World")
formValues.Add("token", "*****")
formValues.Add("channel", "some-channel")
body := strings.NewReader(formValues.Encode())
requestSlack, err := http.NewRequest(
"POST",
"https://slack.com/api/chat.postMessage",
body)
if err != nil {
panic("error")
}
requestSlack.Header.Set("Content-Type", "application/x-www-form-urlencoded")
clientSlack := new(http.Client)
responseSlack, err := clientSlack.Do(requestSlack)
if err != nil {
panic("error")
}
defer responseSlack.Body.Close()
}
説明
url.Values
構造体を使って POST リクエストの Body となるパラメーターを作成します。text
: 投稿するメッセージです。token
: Slack で発行した API を利用するためのトークンを指定します。channel
: 投稿する Slack のチャンネル名を指定します。チャンネル ID でも可です。
Encode()
とstrings.NewReader()
を使ってio.Reader
型を満たせる Body を作成します。Content-Type
にapplication/x-www-form-urlencoded
を設定します。new(http.Client)
を使って HTTP クライアントを作成します。clientSlack.Do(requestSlack)
にてリクエストを送信します。
参考
https://slack.com/api/chat.postMessage
エンドポイントのドキュメント
https://api.slack.com/methods/chat.postMessage