POSTリクエストを処理したい(doPost)
1function doPost(e) {
2 // JSON形式のリクエストボディを想定
3 const data = JSON.parse(e.postData.contents);
4 const name = data.name || "world";
5 return ContentService.createTextOutput(`Hello, ${name}!`);
6}
doPost関数は、ウェブアプリとして公開したGASがPOSTリクエストを受け取ったときに呼ばれる関数です。
GASのエディターからウェブアプリとしてデプロイすると、
https://script.google.com/macros/s/スクリプトID/exec
に対してPOSTリクエストを送れるようになります。
doPost関数は、ひとつのプロジェクトにひとつだけ定義できます。
引数したい(e)
doPost(e)の引数eには、リクエストの情報が入っています。
GETと違い、リクエストボディがe.postDataに入ります。
プロパティ |
内容 |
|---|---|
|
リクエストボディの文字列 |
|
リクエストボディのMIMEタイプ( |
|
リクエストボディのバイト数 |
|
クエリの値。同じ名前が複数あるときは最後の値 |
|
クエリの値。同じ名前が複数あるときは配列 |
|
クエリ文字列そのもの( |
JSON形式でPOSTされたときは、e.postData.contentsをJSON.parseでオブジェクトに変換します。
application/x-www-form-urlencoded形式でPOSTされたときは、GETと同じようにe.parameterから値を取得できます。
MIMEタイプしたい(ContentService)
レスポンスはContentService.createTextOutputで作成します。
デフォルトのMIMEタイプはTEXTなので、テキストを返すだけならsetMimeTypeは不要です。
1// JSON形式で返すときはMIMEタイプを明示する
2return ContentService.createTextOutput(JSON.stringify(data))
3 .setMimeType(ContentService.MimeType.JSON);