前提・実現したいこと
Google apps script、スプレッドシート、Line notifyを用いてgoogleフォームから送信されたアンケートをLineに自動送信する
発生している問題・エラーメッセージ
googleフォームからアンケートを送信するとスプレッドシートから - フォーム送信時のトリガーが連続で複数回実行され、Line notifyから同じメッセージが複数回送られる。時間主導型トリガーの似たプログラムは指定通り実行される。
該当のソースコード
function onFormSubmit(e){ var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var row = sheet.getLastRow(); var who = sheet.getRange(row, 2).getValue(); var meigara = sheet.getRange(row, 4).getValue(); var kind = sheet.getRange(row, 5).getValue(); sendMessage("\n" + who + "が変更しました。" +"\n" + meigara + "\n" + kind ); } function sendMessage(message){ var url = "https://notify-api.line.me/api/notify"; var token = "トークン名"; var options = { "method" : "post", "payload" : "message= " + message, "headers" : {"Authorization" : "Bearer " + token} }; UrlFetchApp.fetch(url,options); }
試したこと
トリガーがなぜか複数回実行されていて、Lineにもメッセージが同じ数送られる結果となっている。トリガーを作り直しても症状は変わらなかった。Googleフォームで直ぐに別の回答を送ると症状が改善し、時間が経過して再度送るとまた複数回同じメッセージが送られる傾向がある。
補足情報(FW/ツールのバージョンなど)
スプレットシートに同じ内容が連続で記入されていないことからスプレットシートへのGoogleフォームのアンケート結果自動記入に誤りはないと思われる。

回答3件
あなたの回答
tips
プレビュー