LINEのBOTをDeveloper Trialのときに遊んで以来、ご無沙汰だったのですが、改めてLINE Notifyを試したらものすごく手軽でした。 ぐぐってみるとherokuにデブロイする系の記事が多いのですが、HTTPでPOSTするだけで通知できるので、備忘がてら手順をまとめたいと思います。
アクセストークンの取得
LINE Notifyの画面からログインします。 ログイン後、マイページへ移動します。
下の方に「アクセストークンの発行(開発者向け)」という項目があるので、 「トークンを発行する」を押下します。
すると以下の画面が出てくるので、
を入力します。
トークン名は、通知されるときにメッセージの先頭に付与されるので短めがおすすめです。
また、グループなどに通知したい場合は、先にグループを作っておく必要があります。 今回は「テスト」を事前に作っておきました。
「発行する」を押下すると以下のようにアクセストークンが得られます。
これをコピーしておきましょう。なくしてしまった場合は、もう一度同じ手順で発行します。
LINE Notifyアカウントをトークンルームに追加
アクセストークンを発行すると以下のように通知が来ます。
指示通りトークルーム(今回は「テスト」グループ)にLINE Notifyのアカウント(トークン名「bot」ではなく、LINE Notifyなので注意)を招待してあげます。
これで準備完了です。
メッセージを送る
実装は以下です。msg
の内容を送信します。
package main import ( "fmt" "io/ioutil" "log" "net/http" "net/url" "strings" ) func main() { accessToken := <YOUR ACCESS TOKEN> msg := "テストメッセージ" URL := "https://notify-api.line.me/api/notify" u, err := url.ParseRequestURI(URL) if err != nil { log.Fatal(err) } c := &http.Client{} form := url.Values{} form.Add("message", msg) body := strings.NewReader(form.Encode()) req, err := http.NewRequest("POST", u.String(), body) if err != nil { log.Fatal(err) } req.Header.Set("Content-Type", "application/x-www-form-urlencoded") req.Header.Set("Authorization", "Bearer "+accessToken) _, err := c.Do(req) if err != nil { log.Fatal(err) } }
実行すると以下のようにメッセージを受信できます。