はじめに
Goを使えば、LINE Notifyを活用してLINEに簡単に通知を送る仕組みを実装できます
このスクリプトは、Go初心者やLINE Notifyを初めて利用する方にもわかりやすい内容となっています。
この記事では、環境の準備から実際に通知を送信するまでの手順を丁寧に解説します。
書こうと思ったきっかけ
この仕組みは、以前Pythonを使って実装しましたが、今回はGoで置き換え、知識を横展開してみようと考えました。
詳細は、以下の記事をご参照ください:
最近、Go言語について少し勉強を始めたばかりで、まずは動くものを作ることを目標にしています。その第一歩として、今回簡単なLINE通知機能を作成しました。
私の想定していた成果物が完成したので、この記事を通じてアウトプットしていきたいと思います。
必要な環境準備
Goのインストール
お使いの端末でGo言語の環境構築がまだ終わっていない場合、過去の記事で方法を紹介していますので、参考にしてください。
LINE Notify トークンの取得
LINE Notify にログインし、トークンを発行してください。発行したトークンを以下のコード内の lineNotifyToken
にコピー&ペーストすることで利用できます。
コードの準備
以下のコードをローカル環境のファイル(例: line_notify.go
)に保存します。
package main
import (
"bytes"
"fmt"
"net/http"
"net/url"
)
func sendLineNotify() {
// LINE Notifyのトークンをここに設定してください
lineNotifyToken := "あなたのLINE Notifyトークンをここに入力"
lineNotifyApi := "https://notify-api.line.me/api/notify"
// メッセージデータをフォームエンコード形式で準備
data := url.Values{}
data.Set("message", "Goから通知検証が成功!")
// HTTPリクエストの設定
req, err := http.NewRequest("POST", lineNotifyApi, bytes.NewBufferString(data.Encode()))
if err != nil {
fmt.Println("リクエストの作成に失敗しました:", err)
return
}
// ヘッダーに認証情報を設定
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("Authorization", "Bearer "+lineNotifyToken)
// HTTPリクエストを送信
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("通知の送信に失敗しました:", err)
return
}
defer resp.Body.Close()
// レスポンスを確認
if resp.StatusCode == http.StatusOK {
fmt.Println("LINEに通知が送信されました")
} else {
fmt.Printf("通知の送信に失敗しました: %d\n", resp.StatusCode)
}
}
func main() {
sendLineNotify()
}
-
コードの説明
-
LINE Notifyトークン
-
lineNotifyToken
に自身のLINE Notifyトークンを設定します。
-
-
フォームデータ
-
url.Values
を使って通知メッセージを指定しています。この形式はLINE Notify APIが受け付けるものです。
-
-
HTTPリクエストの送信
-
http.NewRequest
を使ってリクエストを作成し、ヘッダーに認証情報とデータを設定しています。
-
-
レスポンスの確認
-
resp.StatusCode
をチェックし、200(成功)であれば送信成功、それ以外はエラーを表示します。
-
-
LINE Notifyトークン
スクリプトを実行してみた
ターミナルで保存したスクリプトを以下のコマンドで実行します。
go run line_notify.go
このコマンドを実行すると、LINEに通知が送られるはずです。
実際のコマンド結果
➜ Desktop git:(main) ✗ go run main.go
LINEに通知が送信されました
LINE Notifyの指定したトークルームまたは自分のアカウントに通知が届いていれば成功です。
エラーが発生した場合
通知に失敗した場合は、HTTPステータスコードとエラーメッセージが表示されます。
LINE通知の結果
今回のコードを実行した結果、以下のような通知がLINEに届きました。
通知メッセージの内容は「Goから通知検証が成功!
」で、スクリプトを実行するたびに通知が正常に届くことを確認しました。
まとめ
初めてLINE Notifyを使用した際は、トークンの発行やGoコードの実装に少し不安がありましたが、シンプルなAPI設計のおかげでスムーズに動作させることができました。
LINEに通知が届くことで、プログラムが実際に動いていることを実感できたのが、とても良い体験でした。
特に、身近なLINEアプリを活用することで、エラーや処理完了の通知をリアルタイムで確認できるのは非常に便利だと感じました。