Google Apps ScriptでLine Messaging APIでLINE通知を作成する【GAS】

2025年3月31日、いよいよLine NotifyのAPIサービスが終了します。IFTTTなどの連携などでも使っていた人がいると思いますが、代替のAPIとしてボット作成が可能なLine Messaging APIがありますので移行が必要です。

今回はこのLine Messaging APIを使って、LINEに通知するBotスクリプトを作成してみたいと思います。

今回利用するファイル等

過去にGASを使ってのLine Notifyを使った通知の仕組みは以下のエントリーになります。しかし、もうすぐ使えなくなってしまうので、この部分はLine Messaging APIに置き換えて実装する必要性があります。

また通知だけじゃなくユーザからの応答で答えるチャットボットも作成できるため、Gemini APIなどと組み合わせると生成AI + Lineといった仕組みを作ることも可能になります。

※但しこのAPIは無料枠が200メッセージ/月となっているため、それ以上となると有償となります。また、LINE公式アカウントの作成が別途必要です。但し課金は有料プランにしないと課金はされません。

Google Apps ScriptでLINEに通知を送る【GAS】

事前準備

Line Developer Consoleに登録

まずは何よりもLine Developer Consoleに対してアカウント作成が必要です。

  1. こちらのURLを開いてアカウント作成をクリックする
  2. 開発者名とメアドを登録し、同意のチェックをいれる
  3. アカウント作成をクリックする
  4. スマフォのLINEに多要素認証の連絡が届くので画面の指示に従って入力
  5. Line Developer Consoleに入れる

これでアプリを作ることが可能になります。続けてプロバイダーの作成をしていきます。

図:アカウント作成が必要

プロバイダーの作成

続けて出ている画面にてプロバイダーの作成を行い、チャンネルトークンというものを発行する必要があります。以下の手順で取得し控えておきましょう。

  1. 新規プロバイダーの作成をクリックする
  2. プロバイダ名は適当に入力して、作成をクリックする
  3. チャンネルが空の状態なので、Messaging APIをクリックする
  4. LINE公式アカウントを作成するをクリックする
  5. ログインする
  6. SMS認証を行うをクリックし、自分の電話番号を入れてSMSを送信をクリックする
  7. 認証番号入力→確認→サービスに戻るをクリックする
  8. アカウント名は今回は通知用BOTとしました。
  9. メアド、会社名(適当に)、業種、運用目的、使い方を選択して確認をクリックする
  10. 完了をクリックする
  11. LINE Official Account Managerの画面に飛ぶので、作ったボットが開かれてると思います。
  12. 画面右上の設定をクリックする
  13. 左サイドバーのMessaging APIをクリックする
  14. Messaging APIを利用するをクリックする
  15. 作っておいたプロバイダが出てくるので選択し、同意するをクリックする
  16. プライバシーポリシーURLと同意規約URLを入れてOKをクリックする
  17. チャンネルIDとシークレットが生成されます。
  18. 画面下のLINE Developersをクリックしてコンソールに戻る
  19. 自分が作ったプロバイダをクリックすると先程のチャンネルが出てくるのでクリックする
  20. 上部のMessaging API 設定をクリックする
  21. 下の方にチャンネルアクセストークンというのがあるので、発行をクリックする。この内容も控えておきます。

これでようやく、Line Messaging APIを利用する準備が整いました。この時点でLINEのこの作成した通知用Botが友達として追加されているハズです。

図:プロバイダ作成画面

図:チャンネル設定

図:公式アカウントの作成が必要

図:ボットの設定を行う

図:プロバイダ選択画面

ソースコード

今回は特定の人に送るといったような動作ではなくボットに対して送り込む(つまり全員通知)という仕組みを使うので、ブロードキャストという方法で通知を送り込みます。Webhookを作って、そちらに対してリクエストを送るという方法もありますが、APIを直接叩いて実行する方式を採用しました。

一方的な通知なのでユーザの反応を受け取って、replyTokenを使って答えを返すというパターンではありません。

通知のみ送るパターンなので、例えばGASの処理完了通知であったり、AppSheetでの処理完了通知などの最後に使ってみるなど色々と応用が効くのではないかと思います。ただ特定の人に対して送る場合は、ユーザIDなどやグループIDが必要になるのでちょっとコードが複雑になります。

図:通知が無事に届きました

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)