2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:GoとLINE Notifyで環境構築からトークン取得まで、簡単にLINE通知機能を実装してみた

Last updated at Posted at 2025-01-26

はじめに

Goを使えば、LINE Notifyを活用してLINEに簡単に通知を送る仕組みを実装できます

このスクリプトは、Go初心者やLINE Notifyを初めて利用する方にもわかりやすい内容となっています。

この記事では、環境の準備から実際に通知を送信するまでの手順を丁寧に解説します。

書こうと思ったきっかけ

この仕組みは、以前Pythonを使って実装しましたが、今回はGoで置き換え、知識を横展開してみようと考えました。

詳細は、以下の記事をご参照ください:

最近、Go言語について少し勉強を始めたばかりで、まずは動くものを作ることを目標にしています。その第一歩として、今回簡単なLINE通知機能を作成しました。

私の想定していた成果物が完成したので、この記事を通じてアウトプットしていきたいと思います。

必要な環境準備

Goのインストール

お使いの端末でGo言語の環境構築がまだ終わっていない場合、過去の記事で方法を紹介していますので、参考にしてください。

LINE Notify トークンの取得

LINE Notify にログインし、トークンを発行してください。発行したトークンを以下のコード内の lineNotifyToken にコピー&ペーストすることで利用できます。

コードの準備

以下のコードをローカル環境のファイル(例: line_notify.go)に保存します。

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(成功)であれば送信成功、それ以外はエラーを表示します。

スクリプトを実行してみた

ターミナルで保存したスクリプトを以下のコマンドで実行します。

go run line_notify.go

このコマンドを実行すると、LINEに通知が送られるはずです。

実際のコマンド結果

➜  Desktop git:(main) ✗ go run main.go
LINEに通知が送信されました

LINE Notifyの指定したトークルームまたは自分のアカウントに通知が届いていれば成功です。

エラーが発生した場合

通知に失敗した場合は、HTTPステータスコードとエラーメッセージが表示されます。

LINE通知の結果

今回のコードを実行した結果、以下のような通知がLINEに届きました。

Screenshot 2025-01-26 at 16.22.19.png

通知メッセージの内容は「Goから通知検証が成功!」で、スクリプトを実行するたびに通知が正常に届くことを確認しました。

まとめ

初めてLINE Notifyを使用した際は、トークンの発行やGoコードの実装に少し不安がありましたが、シンプルなAPI設計のおかげでスムーズに動作させることができました。

LINEに通知が届くことで、プログラムが実際に動いていることを実感できたのが、とても良い体験でした。

特に、身近なLINEアプリを活用することで、エラーや処理完了の通知をリアルタイムで確認できるのは非常に便利だと感じました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?