-ao- ramune blog

©2024 unio / GO2直営からふるラムネ
2019年02月19日

Google Formの投稿をSlackに通知する方法

SlackのIncoming WebHooksを作成する

フォーム投稿を通知するSlackにIncoming WebHooksを追加します。

Slack App Directory
                
                    https://[チーム名].slack.com/apps
                
            

Slack App Directoryに移動して、Incoming WebHooksを検索してください。

Incoming WebHooks

Incoming WebHooksを選択したら、Set Upボタンを押してください。

Set Upボタンを押す

Post to Channelでフォーム投稿を受け取るチャンネルを指定します。

投稿チャンネルの指定

チャンネルを選択したらAdd Incoming WebHooks integrationを押してください。 Googleフォームで利用するWebhook URLが表示されるので、必ずメモに残してください。

Webhook URLをメモしてください

対象のチャンネルにIncoming WebHooksが追加されているのを確認して、Slackの準備は完了です。

Incoming WebHooksが正しく追加された状態

Googleフォームの投稿をSlackに通知する

Googleフォーム右上のメニューから「<>スクリプト エディタ」を選択します。

スクリプトエディタを選択する

初めてスクリプト エディタを開くと「無題のプロジェクト」で空の関数が書かれたエディタが開きます。

無題のプロジェクト

空の関数を消して、下記コードをエディタに貼り付けてください。 その際、Webhook URLを入れるコメント下のURLを先程メモしたWebhook URLに変えてください。

フォーム投稿通知のGoogleAppsScript
                
                    function onFormSubmit(event) {
                        // 投稿者がログインしているGoogleメールアドレスが許可されていれば、表示する
                        var message = "投稿者: " + event.response.getRespondentEmail() + "\n";

                        var items = event.response.getItemResponses();
                        for (var i = 0; i < items.length; i++) {
                            message += items[i].getItem().getTitle() + ": " + items[i].getResponse() + "\n";
                        }

                        UrlFetchApp.fetch(
                            // Webhook URLを入れる
                            "https://hooks.slack.com/services/XXX/YYY/ZZZ",
                            {
                                "method" : "POST",
                                "contentType" : "application/json",
                                "payload" : JSON.stringify({"text": message})
                            }
                        );
                    }
                
            

コードを保存して、編集メニューの現在のプロジェクトのトリガーを選択します。

現在のプロジェクトのトリガー

+トリガーを追加」で、先程作成したonFormSubmit関数を設定します。 イベントの種類を選択フォーム送信時を選択します。

トリガーの追加

トリガーを保存すると、自身のGoogleアカウント確認等々いくつか認証が入ります。 すべての認証を終えると、現在のプロジェクトのトリガー一覧に追加したトリガーが表示されます。

トリガーの確認

フォーム投稿通知の確認

ここまで設定できたら、実際にフォームを投稿してみましょう。 設定に問題がなければ、下記のようにIncoming WebHooksを連携したチャンネルに投稿内容が通知されます。

フォーム投稿のSlack通知

今回はかなりシンプルな通知機能を紹介しました。 Slackの通知アイコンやメッセージフォーマットはカスタマイズできるので、ぜひ色々試してみてください。