Googleフォームの回答通知をLINEで受け取る

やさごろもです

以前、複数人からあるデータを集計する時にGoogleフォームを使ったことがあります。アンケート作成とかもできて便利ですよね。

その集計データを、わたしともう1人の管理者と一緒に管理することになったのですが、その人は普段からPCを触らない人でした。スマホでTwitterやLINEは毎日開くということだったので、Googleフォームで回答されたらLINE Notifyを使って、LINEのトークルームに通知するようにしました。

LINE Notifyとは

Webサービスと連携すると、LINEが提供する公式アカウント”LINE Notify”から通知が届きます。
複数のサービスと連携でき、グループでも通知を受信することが可能です。

引用元:LINE Notify(https://notify-bot.line.me/ja/)

LINE Notifyのトークン発行からGoogleフォームの設定手順

STEP.1
LINEで通知を受けるグループを作る
スマホのLINEアプリから通知を受け取る用のグループラインを作ってください。
LINEでグループを作成する
STEP.2
LINE Notifyのページにログイン
LINEに登録しているログイン情報で、LINE Notifyのページ(https://notify-bot.line.me/ja/)にログインし、マイページを開きます。
LINE Notifyにログイン
STEP.3
トークンを発行する
「トークンを発行する」ボタンをクリックします。トークン名と通知の送信先を聞かれるので、トークン名は「〇〇集計用(適当に)」、送信先をSTEP.1で作ったグループに設定して、発行するボタンをクリックします。
すると、トークン(ぐちゃぐちゃな文字列)が発行されます。
トークンを発行する
※ 発行されたトークンはこれから使うので、忘れないようにコピーしてどこかにメモってください。
STEP.4
LINE Notifyをグループに追加する
STEP.1で設定したトークルームにLINE Notifyのアカウントを招待します。
LINE Notifyをグループに招待する
STEP.5
Googleフォームに設定
回答されたら通知するGoogleフォームを開いて、画面左上の「…(縦)」→スクリプトエディタを開きます。
該当するGoogleフォームのスクリプトエディタを開く
そして下記コードを貼り付けます。
Google Apps Script

var lineToken = "ここに発行したトークンを入れる";

function sendToLine(text){
  var token = lineToken;
  var options =
   {
     "method"  : "post",
     "payload" : "message=" + text,
     "headers" : {"Authorization" : "Bearer "+ token}

   };
   var response = UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

function myFunction(e){
  var text = "";
  var body = "<!here>\n"; 
  var applicant = "";
  var itemResponse = e.response.getItemResponses();

  for (var j = 0; j < itemResponse.length; j++){    
    var formData = itemResponse[j];
    var title = formData.getItem().getTitle();
    var response = formData.getResponse();
    
    text += title + "\n" + response + "\n\n";
  
  }
  sendToLine(text);
}
発行したトークンを忘れずに!

コードが貼れたら、メニュー内の「実行」→「関数を実行」→「myFunction」を選択します。
すると、「承認が必要です」というポップアップが出てくるので「許可を確認」をクリックして承認します。
下図のような画面が表示されますが、「詳細」をクリックした後、「”プロジェクト名”(安全ではないページ)に移動」というリンクをクリックしてください。(画像では「きのこたけのこ」がプロジェクト名です)
承認する画面にいく
“プロジェクト名”がGoogleアカウントへのアクセスをリクエストしています という画面が表示されるので「許可」ボタンをクリックします。

メニュー内の「編集」→現在のプロジェクトのトリガーを選択します。
トリガー設定画面を開く
表示された画面右下に「トリガーを追加」ボタンがあるので、クリックして下記設定をします。

  • 実行する関数 → myFunction
  • イベントのソース → フォームから
  • イベントの種類 → フォーム送信時
トリガー設定時にも承認が必要になってくるので、上記と同様に承認をします。
設定完了!

これでフォームが送信されるたびグループLINEに届くようになります。
ためしにGoogleフォームで作ったアンケートを送信してみました。

Googleフォームで作ったアンケート

試しで作ったアンケート

LINEのグループにアンケート内容を通知

グループLINEに届きました

募集終了などで使わなくなったら、トリガーを削除すると通知は止まります。

今回は「Googleフォームの通知をLINEで受け取る」ということでしたが、他にも毎朝の天気予報や、Googleカレンダーに登録しているスケジュールなども通知できました。外部のアプリと連携したらもっともっと便利なことができると思います!
(わたしは今のところこの記事が限界…)

今後も色々試していこうと思います。

参考 超簡単 LINE notify を使ってみるQiita

ではまた。