はじめに
- GAS(Google Apps Script)でPOSTを受け付けて、SpreadSheetに書き込む手順です。
- 認証はありませんので、URLがわかれば誰でもPOSTできてしまうので注意。
- GroovyからSpreadSheetに書き込みたかったが、GData APIを使用するためのライブラリである、gdata-java-clientをGrapeで入れようとしたら、うまく入らなかったのでやめたという経緯があったりします。
仕様
{
"id":"abcdef",
"user":{
"name":"tarou",
"age":20,
"email":"example@example.com",
"result":true
}
}
手順
- スプレッドシートを作成
- ツール → スクリプトエディタ
- GASのコードを書く。
- doPostはPOST、doGetはGETの時に呼ばれます。
- 今回はPOSTで作成。
function doPost(e) {
var jsonString = e.postData.getDataAsString();
var data = JSON.parse(jsonString);
var id = data.id;
var name = data.user.name;
var age = data.user.age;
var email = data.user.email;
var result = data.user.result;
var ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
var sheet = ss.getSheetByName("シート1");
sheet.appendRow([id, name, age, email, result]);
}
- 保存
- 公開 → ウェブアプリケーションとして公開
- プロジェクトバージョン
- 次のユーザとしてアプリケーションを実行
- アプリケーションにアクセスできるユーザー
- 全員(匿名ユーザーを含む)
- ↑に設定することで認証が行われない。
- 「承認が必要です」というダイアログが表示される。
- 「現在のウェブアプリケーションのURL」をメモ。
- POST(URLは↑で確認したURLに置換してください。)
curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"id":"abcdef","user":{"name":"tarou","age":20,"email":"example@example.com","result":true}}' https://script.google.com/macros/s/xxxxxxxxx/exec
- 確認
参考