前提・実現したいこと
Googleフォームで全国で開催しているイベントのアンケートを回収。
アンケートの回答はスプレッドシートへ表示し、新しい回答があった場合、その内容をLINE通知。
回答スプレッドシートから、QUERYとIMPORTRANGEで別のスプレッドシートへ特定の都道府県の回答だけ抜き出しています。
ここまでは出来ました。
≪やりたい事≫
特定の都道府県の回答が来た場合、その分だけ別のLINEグループへ通知したいです。
例えば、愛知県、三重県、岐阜県、静岡県の回答が来た場合、東海LINEグループに通知。それ以外の県の回答は通知しない。
発生している問題・エラーメッセージ
特定の都道府県の回答のみのスプレッドシートからスクリプトエディタでコードを入れました。
トリガーはスクリプトエディタから『変更時』で設定してます。
LINEトークンはプロジェクトのプロパティ→スクリプトのプロパティに「LINE_TOKEN」で設定しました。
通知は来るのですが、特定の都道府県以外の回答時も一つ前の特定の都道府県の回答が通知で来てしまいます。
例えば、愛知県①の回答が来る→愛知県①の回答がLINE通知来る。
次に群馬県①の回答が来る→愛知県①の回答がLINE通知来る。
次に愛知県②の回答が来る→愛知県②の回答がLINE通知来る。
※群馬県①の回答時はLINE通知しないようにしたい。
該当のソースコード
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 == "タイムスタンプ" || item == "開催日"){ value = Utilities.formatDate(value,"JST","yyyy/MM/dd(E) HH:mm:ss"); } message += "\n■"+item+"\n"+value; } SendToLine(message); } function SendToLine(message){ var token = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN'); var op = { "method" : "post", "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())); }
試したこと
今回の作業の為に初めてGASを知ったくらいの初心者です。
あちこちサイトを調べて使えそうなコードを探しては切り貼りしてみたり、メソッドの解説読んだりしましたが、これが限界でした。
3か月くらい一人で戦ってるので、そろそろ解決したいです。
どうぞよろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/23 04:49