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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

Google Apps Script

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

Q&A

1回答

299閲覧

Google フォームのLINE通知の内容を指定した項目だけにしたい

piyopiyo_3

総合スコア6

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

Google Apps Script

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

0グッド

0クリップ

投稿2022/10/09 05:33

編集2022/10/09 06:47

Google フォームのLINE通知の内容を指定した項目だけにしたい

Googleフォームの通知で、通知の内容を、[回答が送信されました](LINEのトークンで設定した通知名)と名前の部分だけにしたいです。それ以外は必要ないのですが、どうしたらその通りにできますか?

現状の通知内容は以下の通りです。

[回答が送信されました] ■タイムスタンプ 2022/10/09(Sun) 13:06 ■本日の日付 2022/10/09(Sun) ■名前 (名前が入ります) ■質問1 (回答内容) ■質問2 (回答内容) ■質問3 (回答内容) ■質問4 (回答内容) ■質問5 (回答内容)

該当のソースコード

function GoogleFormToLine(){ var sheet = SpreadsheetApp.getActiveSheet(); var row = sheet.getLastRow(); var column = sheet.getLastColumn(); var range = sheet.getDataRange(); var message = "";  for(var i=1;i<=column;i++){  var item = range.getCell(1, i).getValue();  var value = range.getCell(row, i).getValue();   if(item == "タイムスタンプ"){   value = Utilities.formatDate(value,"JST","yyyy/MM/dd(E) HH:mm");  } if(item == "本日の日付を記入してください。"){   value = Utilities.formatDate(value,"JST","yyyy/MM/dd(E)");  } message += "\n■"+item+"\n"+value+"\n";  } SendToLine(message); } function SendToLine(message){ var token = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN'); var op = { "method" : "post", "Content-Type" : "application/x-www-form-urlencoded", "payload": "message=" + message, "headers":{"Authorization" : "Bearer " + token} }; var res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op); Logger.log(JSON.parse(res.getContentText())); }

回答のほど、よろしくお願いします。

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

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

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

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

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

CHERRY

2022/10/09 06:35

> 通知の内容を、[回答が送信されました](LINEのトークンで設定した通知名)と名前の部分だけにしたいです。それ以外は必要ないのですが、どうしたらその通りにできますか? 具体的に受け取りたいメッセージは、どのような内容でしょうか?
piyopiyo_3

2022/10/09 06:48

コメントありがとうございます。 具体的に受けとりたいメッセージは以下の通りです。 ーーーーーーーーーーーーーー [回答が送信されました] ■名前 (名前が入ります) ーーーーーーーーーーーーーー
YAmaGNZ

2022/10/09 07:12

現状もmessageで貴方がプログラムで指定しているわけですが・・・
guest

回答1

0

もしかして、ご自身でコードを書かれたのではなく、どこかでコピペしてきたのみでコードの内容を理解されていないのでしょうか?
もしそうでしたら、今後ご質問を投稿される場合、その旨を質問に明記してくださいましたら他の回答者様も丁寧にご回答くださると思います〜!

そして質問者様のコードは、すべてのフォームの内容をLINEに送信するような処理を書かれています〜!
(そちらのほうが名前だけを送信するより難しいのにできています💮)

名前だけ送信したければ以下のようにご変更ください。
(動作確認はしておりません申し訳ございません)

javascript

1function GoogleFormToLine(){ 2 var sheet = SpreadsheetApp.getActiveSheet(); 3 var lastRow = sheet.getLastRow(); 4 // var column = sheet.getLastColumn(); 5 // var range = sheet.getDataRange(); 6 7 // for(var i=1;i<=column;i++){ 8  // var item = range.getCell(1, i).getValue(); 9  // var value = range.getCell(row, i).getValue(); 10   // if(item == "タイムスタンプ"){ 11   // value = Utilities.formatDate(value,"JST","yyyy/MM/dd(E) HH:mm"); 12  // } 13 // if(item == "本日の日付を記入してください。"){ 14   // value = Utilities.formatDate(value,"JST","yyyy/MM/dd(E)"); 15  // } 16 // message += "\n■"+item+"\n"+value+"\n"; 17  // } 18 19 var name = sheet.getRange(lastRow, 3).getValue(); // 最終行の3列目(C列) 20 var message = '[回答が送信されました] \n'; 21 message += '\n'; 22 message += '■名前\n'; 23 message += name; 24 25 SendToLine(message); 26} 27 28function SendToLine(message){ 29 var token = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN'); 30 var op = 31 { 32 "method" : "post", 33 "Content-Type" : "application/x-www-form-urlencoded", 34 "payload": "message=" + message, 35 "headers":{"Authorization" : "Bearer " + token} 36 }; 37 var res = UrlFetchApp.fetch("https://notify-api.line.me/api/notify",op); 38 Logger.log(JSON.parse(res.getContentText())); 39}

投稿2022/10/09 11:48

Cocode

総合スコア2314

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問