メインコンテンツへスキップ
見出し画像

【一歩先行く子育てテク】Google Apps Script ✕ LINE公式アカウント で子どもの習い事通知を一括管理(2025ver.)

    以前、子育て世代の悩みを解決する記事を書かせていただいたところ、思いもよらない反響をいただきました。子どもの習い事の入退室通知や学校の正門通過通知など、バラバラに届く情報をLINE一つにまとめる方法をご紹介したのですが、なんとその記事はnoteの「今週最も多くの人に読まれた記事の一つ」に選ばれました。

    またXでは56万ビューを達成!

    子どもの習い事の入退室通知とか小学校の正門通過通知とか、それぞれ異なるアプリとGmailで届いていて、夫が全く確認しないのが嫌だったから、Google Apps Scriptでコードを書いて、全部LINEに通知が来るようにした笑。一箇所で管理できるのは思っていた以上によいかんじな気がする!

    — まり@国立大院卒理系専業主婦 (@m316jp2) January 31, 2024


    多くの方から「設定しました!」「助かります!」というコメントをいただき、同じような課題を持つ親御さんが多いことを実感しました。

    しかしながら、LINE Notifyが2025年3月31日にサービスを終了するというお知らせがありました。公式のアナウンス(https://notify-bot.line.me/closing-announce)には、LINE公式アカウントのMessaging APIの利用を検討するように記載されていました。

    画像
    https://notify-bot.line.me/closing-announce

    この記事では、終了予定のLINE NotifyからLINE公式アカウントへの移行手順を、スクリーンショットを交えながら詳しく説明していきます。ぜひ最後までお付き合いください!

    前回の記事を読んでまだ設定を迷っていた方も、この機会にぜひチャレンジしてみませんか?より便利で確実な通知システムで、家族のコミュニケーションをさらにスムーズにしていきましょう!


    子どもの入退室通知をLINEで!
    LINE Notify終了に伴う新API移行のスムーズな方法

    全体の流れ

    1. LINE公式アカウントの作成

    2. LINE Developersコンソールでの設定

    3. Google Apps Scriptでの通知設定

    4. GASのデプロイとWebhookの設定

    5. トリガー設定

    それでは、順番に進めていきましょう。



    ステップ1: LINE公式アカウントの作成

    最初に、LINE Official Account Managerでアカウントを作成します。

    1.アカウント作成


    LINE Official Account Managerにアクセスし、ログインします。ここで新しいアカウントを作成しましょう。業種は個人利用の場合、「個人」を選択して問題ありません。

    画像
    画像

    2.同意確認


    利用規約に同意する画面が表示されるので、内容を確認して同意します。これでLINE公式アカウントの作成は完了です。

    画像
    これでLINE公式アカウントの作成は完了!

    ステップ2: LINE Developerコンソールでの設定

    次に、LINE Developerコンソールを使ってMessaging APIの設定を行います。

    1.アカウントの準備

    先ほど作成したLINE公式アカウントのQRコードをスマートフォンで読み取り、LINEアプリで友だち追加を行います。こうすることで、後でLINEからの通知を受信できるようになります。

    画像

    2.LINE Developerコンソールへのアクセス

    (1)LINE Developerコンソールにアクセス

    次はチャンネルアクセストークンを発行します。右上の「設定」を開き、「Messaging API」を選び、「Messaging APIを利用する」をクリック。

    画像
    右上の「設定」を開きます。


    画像
    画像

    続いて、LINE Developersをクリック。

    LINE Developersのコンソールを開きます。

    画像

    (2)プロバイダーの選択
    プロバイダーの一覧が表示されます。先ほど作成したプロバイダーを選択します。このプロバイダーは、あなたのLINE公式アカウントと関連付けられています。

    画像

    3.チャネルアクセストークンの発行

    ここからが重要な手順です。チャネルアクセストークンは、GASや他のプログラムからLINE Messaging APIを使用する際に必要になります。

    (1)Messaging API設定を開く
    チャネル詳細ページに移動したら、「Messaging API」というタブがあるので、これをクリックします。

    画像

    (2)チャネルアクセストークンの発行
    「チャネルアクセストークン(長期)」という項目を探します。
    この項目の横にある「発行」ボタンをクリックします。
    発行されるトークンは、GASなどのプログラムからAPIを利用する際に必要となるので、必ずメモ帳や安全な場所にコピーして保存してください。
    注意点: このトークンは非常に重要な情報です。他人に知られると、あなたのLINEアカウントを通じて不正なアクションを行われるリスクがあります。決して公開しないようにしましょう。

    画像

    ステップ3: Google Apps Scriptの設定

    次に、Google Apps Script(GAS)を使って、LINEに通知を送るためのコードを書きます。

    1.GASプロジェクトの作成

    Google Apps Scriptにアクセスし、新しいプロジェクトを作成します。

    画像
    画像

    2.スクリプトの記述

    以下のコードをプロジェクトにコピーして貼り付けます。このコードは、特定のGmailラベルが付けられた未読メールを見つけ、その内容をLINEに通知する機能を持っています。

    
    function sendNotificationForUnreadMessages() {
      // LINE Messaging API設定
      const channelAccessToken = '************************';
      const userId = 'U***************************';
      const labelName = '*****'; // 監視したいGmailラベル名を設定
    
      // Gmailの検索
      const searchQuery = `label:${labelName} is:unread`;
      const threads = GmailApp.search(searchQuery);
      const messages = GmailApp.getMessagesForThreads(threads);
    
      // メッセージ処理
      for (const thread of messages) {
        for (const message of thread) {
          if (!message.isUnread()) continue;
    
          const subject = message.getSubject();
          const bodyText = message.getPlainBody();
          const snippet = bodyText.substring(0, 70) + '...';
          const sender = message.getFrom();
          const receivedDate = message.getDate();
    
          // メッセージ本文の作成
          const messageText = 
            `📧 新着メール\n\n` +
            `📎 件名:${subject}\n` +
            `👤 送信者:${sender}\n` +
            `🕒 受信日時:${receivedDate.toLocaleString()}\n\n` +
            `📝 本文:\n${snippet}`;
    
          // メッセージペイロード作成
          const payload = {
            to: userId,
            messages: [{
              type: 'text',
              text: messageText
            }]
          };
    
          // API送信オプション
          const options = {
            method: 'post',
            headers: {
              'Content-Type': 'application/json',
              'Authorization': `Bearer ${channelAccessToken}`
            },
            payload: JSON.stringify(payload),
            muteHttpExceptions: true
          };
    
          try {
            // メッセージ送信
            const response = UrlFetchApp.fetch(
              'https://api.line.me/v2/bot/message/push',
              options
            );
            
            const responseCode = response.getResponseCode();
            
            if (responseCode === 200) {
              Logger.log('メッセージを送信しました');
              message.markRead();
            } else {
              Logger.log(`送信エラー (${responseCode}): ${response.getContentText()}`);
            }
    
          } catch (error) {
            Logger.log(`エラーが発生しました: ${error.toString()}`);
          }
        }
      }
    }
    
    // トリガー設定用関数
    function createTimeDrivenTrigger() {
      // 既存のトリガーを削除
      const triggers = ScriptApp.getProjectTriggers();
      triggers.forEach(trigger => ScriptApp.deleteTrigger(trigger));
    
      // 新しいトリガーを作成(5分間隔)
      ScriptApp.newTrigger('sendNotificationForUnreadMessages')
        .timeBased()
        .everyMinutes(5)
        .create();
    }
    

    3.個人で設定が変更が必要な項目



    (1)channelAccessToken
    channelAccessTokenは、先ほどLINE Developerで取得したご自身の情報に置き換えます。チャネルアクセストークン(長期)です。

      const channelAccessToken = '【LINE Developerで取得したトークン】';


    (2)userId
    userIDは、"U"で始まり、その後、数字とアルファベットが32文字続きます。
    自分のユーザーIDの取得方法はこちらの記事を参考にしてください。
    https://note.com/m316jp2/n/nc466911fa9ab

      const userId = '【あなたのユーザーID】';


    (3)labelName
    LINEで通知するメールの条件を設定します。私の場合は、特定のラベルが付けられたメールが来たらLINEに通知するようにしています。'通知したいGmailのラベル名'のところに自分が通知したいラベル名を記入します。

      const labelName = '【通知したいGmailのラベル名】'; // 監視したいGmailラベル名を設定

    4.コードの保存

    すべてのコードを記入したら、プロジェクトを保存します。プロジェクトに名前を付けてください。

    ステップ4. GASのデプロイとWebhook URLの設定

    1.GASのデプロイ

    メニューから「デプロイ」>「新しいデプロイ」を選択します。

    画像
    • デプロイの種類は「ウェブアプリ」を選択します。

    • アクセスできるユーザーは「全員」を選択します。

    画像
    • デプロイが完了すると、ウェブアプリのURLが表示されます。これをコピーしておきます。

    画像

    2.Webhook URLの設定


    LINE DevelopersコンソールのMessaging API設定画面に戻り、「Webhook URL」欄に先ほどコピーしたウェブアプリのURLを貼り付けて「更新」ボタンをクリックします。これで、LINEプラットフォームからのイベント情報がGASに送られるようになります。

    画像

    3.Webhookの確認

    スクリプトが正しく動作するか確認するため、手動でスクリプトを実行してみてください。正常に動けば、LINEにGmailの通知が届きます。

    ステップ5.トリガーの設定

    最後に、スクリプトを自動で定期的に実行するように設定します。

    GASのスクリプトエディタで、「トリガー」メニューを開き、新しいトリガーを作成します。

    画像
    • 実行する関数: sendNotificationForUnreadMessages

    • イベントのソース: 時間主導型

    • 時間ベースのトリガー: 毎分(または任意の間隔)

    画像

    これで、指定した間隔でスクリプトが自動的に実行され、新しいメールがあった場合にLINEに通知されるようになります。

    これで、LINE NotifyからMessaging APIへの切り替えは完了です!最初は少し複雑に感じるかもしれませんが、一度設定してしまえば、より高度なLINE通知を実現できます。ぜひチャレンジしてみてください。



    ーーーーーーーーーー
    私の書いた本が出版されました!
    \Twitterからうまれた/
    ちょっと理系なおうち遊びの本

    Amazon 売れ筋ランキング  
    幼児教育 カテゴリー  有料Top100
    ベストセラー1位✨ になりました!
    ありがとうございます!

    KindleUnlimited, ペーパーバックでも読めます!


    画像







     
     
     
    家庭にAIを導入したら、毎日が前に進み始めた! 著書『AI×家事』扶桑社 WOMAN AI AWARD 2026 受賞 miyazakimari.com NHK・日テレ・フジ・雑誌ESSE・LDK・クロワッサン掲載 講談社with classコラムニスト

    あなたへのおすすめ