自動化
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グループで回答内容を受け取りたい場合

今回紹介する方法では公式LINEから1対1で直接通知を受け取ることができますが、LINEグループ内では通知を受け取ることができません。

今回紹介する方法は、LINE公式アカウントに登録している友達全員にGoogleフォームの回答内容を送信します。

LINEグループで通知を受け取りたい場合には下記の記事をご参考ください。

あわせて読みたい
Googleフォームの回答をLINEグループで受け取る方法【LINE Messaging API】
Googleフォームの回答をLINEグループで受け取る方法【LINE Messaging API】

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

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

メリット

  • フォーム回答のリアルタイム通知
    新しい回答が届くと、作成した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公式アカウントから通知が飛ぶようになります。

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

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

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

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

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

SANANE
SANANE

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

下記のプロフィールページ、[見積もりの相談をする]からご相談ください。

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