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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

0回答

632閲覧

グーグルフォームからスラックへ飛ばすときに、内容が改行されてしまう

kkurata

総合スコア0

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2021/03/15 04:56

編集2021/03/15 07:13

前提・実現したいこと

前任のわかる人間が退職してしまったため
無知な質問で申し訳ございません。

Googleフォームから
回答を今までメールで飛ばしていたのですが
今後はスラックに飛ばしたいと考えています。

メール用のコードでは
自動的に行番号をつけて
質問の後に改行なして回答を表示できており、1行にスッキリまとめられていました。

ネットで参考にさせてもらったコードでは
質問が太文字になり、改行がはいってしまい
その下に回答が表示されるので
長くなってしまい、また数字もつけたいが
うまくできず困っています。

スラック用のコードの\nを削除しても改行されてしまい
どうしたらよいかわかりません。

失礼な質問で申し訳ないのですがお助けいただけないでしょうか。。。

理想は、今までメールで抽出できていた内容がそのままスラックに投稿できることなのですが。。。

スラック用のコード

function sendToSlack(fallback, fields, channel) { const url = "https://hooks.slack.com/services/TEZTZPMTQ/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" const data = { "channel" : channel, "username" : "Googleフォーム", // 1: bot 名 "attachments" : [{ "fallback" : fallback, "text" : "【終了】", "fields": fields, "color": "good", // 3: 左線の色 }], "icon_emoji" : ":envelope_with_arrow:" // 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("テスト通知確認です", [], "#g-from"); } 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){ const itemResponses = e.response.getItemResponses(); const fallback = itemResponses.map(function(itemResponse) { return itemResponse.getItem().getTitle() + ": " + itemResponse.getResponse(); }).join("\n"); const fields = itemResponses.map(function(itemResponse) { const value = responseToText(itemResponse); return { "title": itemResponse.getItem().getTitle(), "value": value, "short": false, // 4: 左右2列で表示 } }); sendToSlack(fallback, fields, "#g-from"); }

メール用のコード

function submitForm(e){ var itemResponses = e.response.getItemResponses(); var message = ''; for (var i = 0; i < itemResponses.length; i++) { var itemResponse = itemResponses[i]; var question = itemResponse.getItem().getTitle(); var answer = itemResponse.getResponse(); message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n'; } var address = 'abc@gmail.com'; var title = '[終了]'; var content = '下記の内容で、終了フォームへの入力を受信しました。\n\n' + message; GmailApp.sendEmail(address, title, content); }

何卒よろしくお願い申し上げます。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問