質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2242閲覧

Googleフォームの回答の一部をSlackに反映させたい

mogu040207

総合スコア1

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2021/09/17 05:26

前提・実現したいこと

Googleフォームの回答の一部をSklackに通知させたいと思っています。
attachmentsを利用して見やすい状態を作りたいです。

発生している問題・エラーメッセージ

ReferenceError: itemResponse is not defined at onFormSubmit(コード:52:14)

該当のソースコード

function sendToSlack(fallback, fields, channel) { const url = ""//URL const data = { "channel" : channel, "username" : "アンケート回答です", // 1: bot 名 "attachments" : [{ "fallback" : fallback, "text" : 'テストです', "fields": fields, "color": "good", // 3: 左線の色 }], "icon_url" : "" // 2: アイコン画像 }; const payload = JSON.stringify(data); const options = { "method" : "POST", "contentType" : "application/json", "payload" : payload, "muteHttpExceptions": true, }; const response = UrlFetchApp.fetch(url, options); Logger.log(response) } function test() { sendToSlack("テスト通知確認です", [], "");//チャンネル名 } function responseToText(itemResponse) { switch (itemResponse.getItem().getType()) { case FormApp.ItemType.CHECKBOX: return itemResponse.getResponse().join("\n"); break; case FormApp.ItemType.GRID: const gridResponses = itemResponse.getResponse(); return itemResponse.getItem().asGridItem().getRows().map(function(rowName, index) { Logger.log(rowName); return rowName + ": " + gridResponses[index]; }).join("\n"); break; case FormApp.ItemType.CHECKBOX_GRID: const checkboxGridResponses = itemResponse.getResponse() return itemResponse.getItem().asCheckboxGridItem().getRows().map(function(rowName, index) { Logger.log(rowName); return rowName + ": " + checkboxGridResponses[index]; }).join("\n"); break; default: return itemResponse.getResponse(); } } function onFormSubmit(e){ var itemResponses = e.response.getItemResponses();  var name = itemResponse[1].getResponse(); var likes = itemResponse[2].getResponse(); var body = "アンケート回答ありました!\n\n"; var bodyPublic = "名前:" + name + "\n好きな動物:" + likes ; body += bodyPublic ; const fallback = itemResponses.map(function(itemResponse) { return itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse(); }).join("\n"); const fields = body sendToSlack(fallback, fields, "");//チャンネル名 }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

var name = itemResponse[1].getResponse();
var likes = itemResponse[2].getResponse();

エラーになっているこの配列へのアクセスは itemResponses[1] のようになるんじゃないかなと思います(最後に s が抜けてます)。

投稿2021/09/17 08:22

seratch

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問