GASでWebhook POSTデータを受け取る最小クイックコード

WebhookwoGASで受け取る最小クイックコード GAS

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でレスポンスを追加しています。

以上です。

コメント

タイトルとURLをコピーしました