自動化
PR

Googleフォームの回答をLINEで受け取る方法!【LINE Messaging API対応】

sanane
記事内に商品プロモーションを含む場合があります

はじめに

今回はLINE Messaging APIを使って、Google Formの回答内容を自動的にLINEに通知する方法を紹介します。

アンケートやお問い合わせなど、あらゆる用途で便利に使われるGoogleフォーム

SANANE
SANANE

しかし、回答が届いたことに気づくのが遅れてしまったり、メール確認をこまめに行うのが大変だったり……。

そんなときに、LINE Messaging APIとの連携をすることで、LINEの公式アカウントで回答内容の通知をを受け取ることができます。

LINE Messaging APIを使う理由

これまでは同様の機能をLINE Notifyを使うことで代用が可能でした。

しかし2025年4月1日以降、LINE Notifyのすべての機能が利用できなくなることが発表されています。

そのため、本記事ではLINE Notifyではなく代用となるLINE Messaging APIで通知を行う方法をご紹介します。

LINE Messaging APIに切り替える際の注意点

  1. 公式アカウントが必要
    以前は、LINE Notifyのトークルームに通知できましたが、2025年4月以降は公式アカウントを作成し、Messaging APIの利用が必須になります。
  2. 月に200通の無料枠がある
    LINE Messaging APIの無料枠では「1ヶ月200通」まで送信できます。
    • 複数人が同じ公式アカウントから通知を受け取る場合でも、すべて合算で200通です。
    • もし合計で200通以上の通知を利用している場合は、有料プランの契約が必要になる可能性がありますのでご注意ください。

メリット

  • フォーム回答のリアルタイム通知
    新しい回答が届くと、作成したLINE公式アカウントで瞬時に通知を受け取ることができます。メールをチェックしたり、スプレッドシートを開く手間を減らすことが可能です。
  • 基本無料で利用可能
    月の利用上限はありますが、上限以内の利用であれば無料で利用が可能です。LINEの公式アカウントも無料で作成ができます。
  • スプレッドシートへの保存との連携
    フォーム回答はGoogleスプレッドシートに自動記録されるので、後からデータ分析や一括管理も容易になります。

事前に準備するもの

  1. Googleアカウント
    (Googleフォームやスプレッドシートの作成・管理に必要)
  2. LINE公式アカウント
    (作成方法は本記事の手順で説明します)
  3. Googleフォームおよび連携用のスプレッドシート
    (これから本記事の手順で作成します)

導入方法

ステップ1:Googleフォームとスプレッドシートのリンク

Googleフォームの作成
  1. Google フォームにアクセスします。
  2. 新しいフォームを作成し、質問項目などを自由にカスタマイズしてください。
フォームの回答をスプレッドシートにリンク
  1. フォーム編集画面の上部「回答」タブをクリック。
  2. スプレッドシートにリンク」のアイコン(緑色のシートのマーク)を選択。
  3. 新しいスプレッドシートを作成」を選択して「作成」。
  4. 自動でスプレッドシートが生成され、回答が連携されるようになります。

ステップ2:LINE公式アカウントの設定(Messaging APIの準備)

LINE公式アカウントの作成
  1. LINE Official Account Managerにアクセスして自身のアカウントでログインします。個人の利用であれば「LINEアカウントでログイン」で問題ありません。
  2. 「アカウントタブ」より「作成」をクリックし新規アカウントを作成します。
    • アカウント名:お好み(例:「通知Bot」など)
    • メールアドレス:任意
    • 業種:個人
    • 運用目的:その他
    • 主な使い方:メッセージ配信用
  3. 各種同意画面に従い、「同意」を選択。
  4. 作成完了後、LINE公式アカウントが使用可能になります。
LINE公式アカウントでMessaging APIを有効にする
  1. LINE Official Account Managerで作成したアカウントにログインします。
  2. 画面右上の「設定」をクリック。
  3. 左メニューの「Messaging API」を選択。
  4. Messaging APIを利用する」をクリック
  5. プロバイダーを選択 → 「同意する」。
  6. プライバシーポリシー、利用規約は空欄のまま「OK」をクリック。
  7. 「OK」をクリックし、[Channel ID]と[Channel Secret]が表示されていることを確認します。
LINE Developersでのアクセストークン取得
  1. LINE Developersにアクセスし、「コンソールにログイン」をクリック。前ステップで選択したプロバイダーを選択します。
  2. 前ステップで作成したチャネルを選択。
  3. 上部バーから「Messaging API設定」をクリック。
  4. ページ下部の「チャンネルアクセストークン」を発行してコピー(後で使用します)。

ステップ3:Google Apps Scriptで通知スクリプトを作成する

スクリプトの準備
  1. ステップ1.2で作成したスプレッドシートを開きます。
  2. 上部メニュー「拡張機能」 → 「Apps Script」をクリック。
    • 新しいタブでGoogle Apps Scriptのエディタが開きます。
スクリプトの編集
  1. 以下のコードをコピー&ペーストしてください。不要なものが混ざらないように注意しましょう。
  2. コード1行目のconst ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';YOUR_ACCESS_TOKEN 部分を、
    ステップ2.3で取得したチャンネルアクセストークンに置き換えます。
    (シングルクォーテーション ' ' はそのままです)
  3. 上部メニューの「保存」ボタンをクリックして、プロジェクトを保存します。
const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';
function sendToLine() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var row = sheet.getLastRow();
  var data = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getValues();
  var message = '新しいフォームの回答がありました:\n';
  
  // タイムスタンプを整形(年月日と時間のみ)
  var timestamp = new Date(data[0][0]);
  var formattedTimestamp = Utilities.formatDate(timestamp, Session.getScriptTimeZone(), 'yyyy/MM/dd HH:mm');
  message += '■タイムスタンプ\n ' + formattedTimestamp + '\n';
  
  // 回答をメッセージに追加
  data[0].forEach(function(value, index) {
    // 1列目はタイムスタンプなのでスキップ
    if (index > 0) {
      var question = sheet.getRange(1, index + 1).getValue();
      message += '■' + question + '\n ' + value + '\n';
    }
  });
  
  // LINE Messaging API (ブロードキャスト) へPOSTする
  var url = 'https://api.line.me/v2/bot/message/broadcast';
  var payload = JSON.stringify({
    "messages": [
      {
        "type": "text",
        "text": message
      }
    ]
  });
  
  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + ACCESS_TOKEN
    },
    "payload": payload
  };
  
  UrlFetchApp.fetch(url, options);
}
トリガーの設定
  1. スクリプトエディタの左メニューから時計マーク(トリガー)をクリック。
  2. トリガーを追加」ボタンを押して新規トリガーを作成。
    • 実行する関数を選択:sendToLine
    • イベントのソースを選択:スプレッドシート
    • イベントの種類を選択:フォーム送信時
  3. 保存」ボタンをクリック。
  4. 初回設定時は「承認が必要です」画面が出ますので、下記記事を参考にアクセス権限を許可してください。
あわせて読みたい
Google Apps Scriptで「承認が必要です」が表示されたときの対応方法について解説【GAS】
Google Apps Scriptで「承認が必要です」が表示されたときの対応方法について解説【GAS】

これで設定完了です!
以降、Googleフォームに新しい回答があるたびに、自動でLINE公式アカウントから通知が飛ぶようになります。

カスタマイズの依頼について

「本記事の紹介内容をもっと自分用にカスタマイズしたい」

「設定がうまくいかず依頼したい」

「別のツールの作成依頼をしたい」

上記ご要望について、ココナラというサービスにて承っております。

相談は無料ですのでぜひお気軽にご相談ください。


初めてココナラを登録する方は下記をクリックしてココナラにアクセスし、右上の[会員登録]から会員登録を実施してください。

会員登録が完了後、下記リンクにアクセスし、画面右側の[見積り・仕事の相談をする]からご相談ください。

ABOUT ME
さなね
さなね
システムエンジニアとしての傍ら、自動化に関するツールの作成や発信をしています。 ココナラで紹介しているツールのカスタマイズを承っています。
記事URLをコピーしました