GASを使ってWebhookデータを受け取るクイックコードです。
備忘録的にまとめているので、扱いに関しては各自の判断でお願いします。
function doPost(e) {
if (e == null || e.postData == null || e.postData.contents == null) return;
var obj = JSON.parse(e.postData.contents);
var now = new Date();
var array = [];
array.push(now, obj);
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheets()[0];
sheet.appendRow(array);
}
デフォルトのスプレッドシートの0番目シートA列にタイムスタンプ、B列にPOSTデータがそのまま入ります。
レスポンス処理を加えたコード
レスポンスを返却する処理を追加したいという要望があったので、そのコードを追加した最小コードも記載したいと思います。
function doPost(e) {
if (e == null || e.postData == null || e.postData.contents == null) return;
var obj = JSON.parse(e.postData.contents);
var now = new Date();
var array = [];
array.push(now, obj);
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheets()[0];
// データの追加処理ここから
try {
sheet.appendRow(array);
return ContentService.createTextOutput('データが正常に追加されました').setMimeType(ContentService.MimeType.TEXT);
} catch(error) {
return ContentService.createTextOutput('エラーが発生しました: ' + error.message).setMimeType(ContentService.MimeType.TEXT);
}
}
try-chatchでレスポンスを追加しています。
以上です。
コメント