1
2

#44 GoogleFormの回答をGoogleChatに通知したい

Posted at

はじめに

今回はGoogleFormからの回答をGoogleChatにリアルタイムで送信してみます。
GoogleChatに通知を送ることで、GoogleFormから送られてきた問い合わせに迅速に対応できたり、アンケートなどの回答内容がすぐに確認できるようになります。
※今回の記事の手順を行うには、GoogleWorkspaceの利用が必要ですのでご注意ください。

手順

前回の記事を参考に手順を実行する

GoogleFormの回答が条件に当てはまる場合にメールで通知を送りたい

前回の記事を参考に以下の手順を行います。

1.GoogleFormを作成する

2.GoogleAppsScriptを開く

(※今回、3.「appsscript.json」の修正を行う は設定不要ですのでスキップします。)

4.「コード.gs」ファイル修正

「コード.gs」に入力するコード

前回は回答内容によって通知するしないの条件を付けましたが、
今回はすべての回答を通知させます。

function onFormSubmit(e) {
  // フォームの回答を取得する
  var formResponses = e.response.getItemResponses();

  // メッセージを設定する
  var message = 'GoogleFormへの回答がありました\n';

  // メッセージにフォームの回答を追加する
  for (var i = 0; i < formResponses.length; i++) {
    message += formResponses[i].getItem().getTitle() + ': ' + formResponses[i].getResponse() + '\n';
  }

  // Google Chat にメッセージを送信する
  sendToChat(message);
}

function sendToChat(message) {
  // Google ChatのWebhook URL
  var webhookUrl = 'Webhook URLを指定する';
  var payload = {
    'text': message
  };
  
  // HTTPリクエストのオプションを定義する
  var options = {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(payload)
  };
  
  // POSTリクエストを送信する
  UrlFetchApp.fetch(webhookUrl, options);
}


5.トリガーの設定
前回の記事と同様、以下の内容で設定を行います。

実行する関数:onFormSubmit
実行するデプロイ:Head
イベントのソース:フォームから
イベントの種類:フォーム送信時
エラー通知設定:お好みで

トリガーの保存時にポップアップでアクセス権限を求められますので許可します。

追加手順

Google Chatの設定

【Google Chat の Webhook URLを発行】 - Google ChatにSlackのリマインダーを転送してみた

上記記事を参考にWebhookURLを発行し、URLをコピーします。
4.「コード.gs」ファイル修正 のコードの「Webhook URLを指定する」の部分にURLを上書きします。

function sendToChat(message) {
// Google ChatのWebhook URL
var webhookUrl = 'Webhook URLを指定する';

実際にフォームを送信してみる

作成したフォームで回答してみるとメッセージが送信されます。

最後に

今回はGoogleFormの回答をGoogleChatに通知する方法を紹介しました。
ご覧いただきありがとうございました!

参考:https://www.one-walker.net/gas-chat-message/

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2