Google Apps Script(GAS)からLINEへPush通知を送信する方法をまとめました。
GASだとちょっとした仕組みを手軽にかつサーバレスで作れるので、これにPush通知の機能まで付けられるのは鬼に金棒です。
というわけでさっそく説明していきます。
1. 事前準備
(1)LINEでの設定
①通知先のLINEグループを作成
以下の手順でLINEグループを作成してください。
なお、通知先が自分自身のみの場合は「自分だけしかいないグループ」を作成すればOKです。
※後述しますが、作成したグループに通知を送信するためには、グループ内に「LINE Notify」も追加する必要がありますので、通知先が自分自身のみの場合は、最終的には「自分とLINE Notify」の2ユーザがグループ内に存在する形になります。
②LINE Notifyの設定
通知の送信にあたり、LINEの通知のサービスである「LINE Notify」を設定し、①で作ったグループで使える状態にします。
以下が分かりやすかったのでこちらを参考に設定してください。
この設定で取得したトークンはこの後のGASでの設定でも利用します。
(2)GASでの設定
スクリプトプロパティ(環境変数)の設定
(1)の②で取得したトークンをGoogleスプレッドシートで使えるよう設定します。
直接コード上にトークンを記述するハードコーディングはセキュリティ上の理由から避ける必要があります。
そこで、以下の手順のとおりスプレッドシートの「スクリプト プロパティ」(一般的な「環境変数」に相当)にトークン等を格納し内部的に呼び出せるようにします。
- スプレッドシート上部のメニューにある「拡張機能」の配下にある「Apps Script」を選択。すると、新しいタブでコードエディタが表示される
- エディタの左側にある歯車アイコンにカーソルを合わせると表示される「プロジェクトの設定」を選択
- 設定画面の一番下に「スクリプト プロパティ」という項目がある。これを設定するため「スクリプト プロパティを追加」を選択
- スクリプト プロパティ(環境変数と同義)の設定欄が表示されるので、以下のとおり設定
ⅰ.「プロパティ」欄で適当な名前を入力(ここではLINENOTIFY_TOKEN
)
ⅱ. 取得したLINE Notifyのトークンを貼り付ける
ⅲ. 入力内容を保存するため「スクリプト プロパティを保存」を選択
これで事前準備は完了です。
2. 実装
まずは通知用のlineNotify
関数を作成します。
このlineNotify
関数に通知したいメッセージ内容を引数として渡すことで、そのメッセージが(1)①で作ったLINEグループに通知される、という想定です。
(1)通知用関数
function lineNotify(message) {
// スクリプトプロパティに格納したLINE Notifyのトークンを読み込む
const lineToken = PropertiesService.getScriptProperties().getProperty("LINENOTIFY_TOKEN");
// httpリクエスト内容の準備
const options = {
"method": "POST",
"payload": {"message": message},
"headers": {"Authorization": "Bearer " + lineToken}
};
// httpリクエストをLINE NotirfyのAPIに送信 → 指定のLINEグループに通知が飛ぶ
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
(2)通知実行
では、実際に実行してみましょう。
function pushNotify(){
// 意味もなく3連発してみる
lineNotify("通知テストです");
lineNotify("通知テストざます");
lineNotify("通知テストでごわす");
}
無事通知が届いたでごわす。
おわりに
実際に使ってみました。