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

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

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google フォーム

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

Google Apps Script

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

Q&A

1回答

614閲覧

Google Formで未入力の箇所をLINEに通知しないように設定したいです。

t8g

総合スコア0

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google フォーム

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

Google Apps Script

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

0グッド

2クリップ

投稿2020/06/05 12:24

前提・実現したいこと

Google Formへ回答があった時に、自動的にLINEに通知が来るようにしています。
その際に未入力の欄が空白として認識されてしまいます。

Google FormとLINEの連携については下記のコードを参考にしています。
https://qiita.com/guchimina/items/aa36e27875ae26876d2c

該当のソースコード

//spreadsheetからデータを取得
function GoogleFormToLine(){
var sheet = SpreadsheetApp.getActiveSheet(); //sheetの指定
var row = sheet.getLastRow(); //行数
var column = sheet.getLastColumn(); //列数
var range = sheet.getDataRange(); //sheetから範囲指定するための準備
var message = "";
for(var i=1;i<=column;i++){
var item = range.getCell(1, i).getValue(); //1行目
var value = range.getCell(row, i).getValue(); //最終行
message += "\n■"+item+"\n"+value;
}
SendToLine(message);
}

//LINEに通知
function SendToLine(message){
//ファイル→プロジェクトのプロパティ→スプリクトのプロパティからLINE_TOKENを設定しておく
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())); //Response
}

試したこと

Slack版の回答を拝見したのですが、LINEの際にはどのように対応すべきなのか見当がつかず、
質問をさせていただきました。

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

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

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

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

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

guest

回答1

0

Googleフォームのトリガーでフォーム送信時に
こんな感じで動作させたほうがよくないですか?
スプレッドシートの最終行取得は動作不安。。

GAS

1function sendform(e){ 2 var item = e.response.getItemResponses(); 3 4 //空白抜きメッセージ 5 var msg = ''; 6 for (var i = 0; i < item.length; i++) { 7 var item = item[i]; 8 var v = item.getItem().getTitle(); 9 var w = item.getResponse(); 10 if(w!==""){ 11 msg += v + ': ' + w + '\n\n'; 12 } 13SendToLine(msg ); 14}

投稿2020/06/20 01:06

編集2020/06/20 01:27
MasakiTM

総合スコア115

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

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

t8g

2020/06/22 04:15

ありがとうございます! 頂きましたアドバイスを参考にやってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問