【GAS】doPostをテストするための関数を作成する。【kintone】
doPostのテストはめんどくさい
kintoneなどのWEBHOOKからGASで受け取ってデータを処理するコードを作成しています。
しかし、テストのためにいちいちkintoneを開いてデータを登録して・・・というのはめんどくさいです。
なので、テストの時には一度受け取ったデータをJSON化したものを、使いまわしてテストを行いたいと思いました。
実際にWEBHOOKから受け取ったデータ(eventData)のpostDataがBlobなのでgetDataAsStringしてJSONに変換しているのですが、テストのデータも本番と合わせてBlobとして扱いたいがBlobに変換ってできるのかな?
と思い調べたところ下記のコードが完成しました。
コード
/**
* doPost関数に擬似的にパラメータを送って動作テストをする関数
*/
function testDoPost() {
//投げたいデータを設定
const eventData = {
postData: {
contents: ({/****POSTされるJSON*****/}),
}
};
eventData.postData = Utilities.newBlob(JSON.stringify(eventData.postData));
doPost(eventData);
}
/**
* doPost関数本体
* @param {object} eventData - ポストされたデータWebHookなどを受け取れます。
*/
function doPost(eventData) {
const data = JSON.parse(eventData.postData.getDataAsString());
console.log(data);
return
}
ハマったポイント
Java Scripctでは new Blob というクラスが用意されているのですがGASではこちらは使えません。
その代わりに Utilities.newBlob を使ってBlobを作成するのがポイントでした。
参考
Utilities.newBlob
https://developers.google.com/apps-script/reference/utilities/utilities#newblobdata
Blob
https://developer.mozilla.org/ja/docs/Web/API/Blob
ディスカッション
コメント一覧
まだ、コメントがありません