Google Apps ScriptでLine Messaging APIでLINE通知を作成する【GAS】
2025年3月31日、いよいよLine NotifyのAPIサービスが終了します。IFTTTなどの連携などでも使っていた人がいると思いますが、代替のAPIとしてボット作成が可能なLine Messaging APIがありますので移行が必要です。
今回はこのLine Messaging APIを使って、LINEに通知するBotスクリプトを作成してみたいと思います。
今回利用するファイル等
- Line Messaging API - Google Spreadsheet
- Line Messaging API Reference
過去にGASを使ってのLine Notifyを使った通知の仕組みは以下のエントリーになります。しかし、もうすぐ使えなくなってしまうので、この部分はLine Messaging APIに置き換えて実装する必要性があります。
また通知だけじゃなくユーザからの応答で答えるチャットボットも作成できるため、Gemini APIなどと組み合わせると生成AI + Lineといった仕組みを作ることも可能になります。
※但しこのAPIは無料枠が200メッセージ/月となっているため、それ以上となると有償となります。また、LINE公式アカウントの作成が別途必要です。但し課金は有料プランにしないと課金はされません。
事前準備
Line Developer Consoleに登録
まずは何よりもLine Developer Consoleに対してアカウント作成が必要です。
- こちらのURLを開いてアカウント作成をクリックする
- 開発者名とメアドを登録し、同意のチェックをいれる
- アカウント作成をクリックする
- スマフォのLINEに多要素認証の連絡が届くので画面の指示に従って入力
- Line Developer Consoleに入れる
これでアプリを作ることが可能になります。続けてプロバイダーの作成をしていきます。
図:アカウント作成が必要
プロバイダーの作成
続けて出ている画面にてプロバイダーの作成を行い、チャンネルトークンというものを発行する必要があります。以下の手順で取得し控えておきましょう。
- 新規プロバイダーの作成をクリックする
- プロバイダ名は適当に入力して、作成をクリックする
- チャンネルが空の状態なので、Messaging APIをクリックする
- LINE公式アカウントを作成するをクリックする
- ログインする
- SMS認証を行うをクリックし、自分の電話番号を入れてSMSを送信をクリックする
- 認証番号入力→確認→サービスに戻るをクリックする
- アカウント名は今回は通知用BOTとしました。
- メアド、会社名(適当に)、業種、運用目的、使い方を選択して確認をクリックする
- 完了をクリックする
- LINE Official Account Managerの画面に飛ぶので、作ったボットが開かれてると思います。
- 画面右上の設定をクリックする
- 左サイドバーのMessaging APIをクリックする
- Messaging APIを利用するをクリックする
- 作っておいたプロバイダが出てくるので選択し、同意するをクリックする
- プライバシーポリシーURLと同意規約URLを入れてOKをクリックする
- チャンネルIDとシークレットが生成されます。
- 画面下のLINE Developersをクリックしてコンソールに戻る
- 自分が作ったプロバイダをクリックすると先程のチャンネルが出てくるのでクリックする
- 上部のMessaging API 設定をクリックする
- 下の方にチャンネルアクセストークンというのがあるので、発行をクリックする。この内容も控えておきます。
これでようやく、Line Messaging APIを利用する準備が整いました。この時点でLINEのこの作成した通知用Botが友達として追加されているハズです。
図:プロバイダ作成画面
図:チャンネル設定
図:公式アカウントの作成が必要
図:ボットの設定を行う
図:プロバイダ選択画面
ソースコード
今回は特定の人に送るといったような動作ではなくボットに対して送り込む(つまり全員通知)という仕組みを使うので、ブロードキャストという方法で通知を送り込みます。Webhookを作って、そちらに対してリクエストを送るという方法もありますが、APIを直接叩いて実行する方式を採用しました。
一方的な通知なのでユーザの反応を受け取って、replyTokenを使って答えを返すというパターンではありません。
通知のみ送るパターンなので、例えばGASの処理完了通知であったり、AppSheetでの処理完了通知などの最後に使ってみるなど色々と応用が効くのではないかと思います。ただ特定の人に対して送る場合は、ユーザIDなどやグループIDが必要になるのでちょっとコードが複雑になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
//Line Tokenを入れる var apiToken = "ここにチャンネルトークンを入れる" //エンドポイントURL const url = "https://api.line.me/v2/bot/message/broadcast"; //LINE Botに対してメッセージを送り込む function sendLineBot() { //メッセージを構築する const messages = "hello world" //リクエストオプション const options = { "method": "post", "headers": { "Content-Type": "application/json", "Authorization": `Bearer ${apiToken}` }, "payload": JSON.stringify({ "messages": [{ "type": "text", "text": messages }] }) }; UrlFetchApp.fetch(url, options); } |
図:通知が無事に届きました
関連リンク
- 「LINE Notify」が2025年3月末でサービス終了。代替としてMessaging APIの利用を推奨
- Google Apps ScriptでLINEのMessaging APIを使ってメッセージを送信する
- Google Apps Script で LINE Bot を作成する
- 誰でもLINE自動返信の作成が10分でできる 〜LINE Messaging API × Google Apps Script〜 LINE BOT
- LINE Notifyの代替方法として、LINE Messaging APIを利用して、LINEグループに送る
- ブロードキャストメッセージを送る
- LINE Notifyがサービス終了するので、LINE公式アカウントに置き換える
- [GAS]Gmailの新着メールをLINE NotifyからLINE Messaging APIに移行した
- GASからLINE Messaging API をたたくときの書き方について