大したタイトルなんだが、なんてことはない、Google Apps ScriptだけでSpreadSheetへのPOST APIを持つWebアプリケーションを公開するの通りのGoogle apps script(以下GAS)を用意し、ターゲットとなるspread sheetsに設定、あとはそのスクリプトめがけてPOSTメソッドでクエリー与えて叩くだけです。
ただ、すこしGASスクリプトは改変してある
function doPost(e) {
var ss = SpreadsheetApp.openById("###_API_TOKEN_###");
var sheet = ss.getSheetByName("シート名");
//formデータを取り出して、配列に格納
var array = [e.parameters.timestamp[0],e.parameters.hostname[0],e.parameters.plan[0],e.parameters.uri[0]];
//一発で最終行に書込みする
sheet.appendRow(array);
}
なんかe.parameters
には来てるんだけど、、謎の配列だったので、.queryname[0]
で取ってしまってる。クエリー名は任意に決めておきましょう。array
にこうやって連結した配列分のセルが出来る。↑の例だと4カラム分。
sheet.appendRow()
でアペンドしてる。内容が存在する行の次に追加してくれるので、内容を上書きしたりもしない。また背景色とかは無視されるので、列ごとの色分けも先にしておける。
nowdata='現在時刻'
hostname='ホスト名'
plan='プラン'
curl -F "timestamp=${nowdate}" -F "hostname=${hostname}" -F "plan=${plan}" -F "uri=https://${hostname}/${dirname}/" https://script.google.com/macros/s/###_API_TOKEN_####/exec > /dev/null
echo ">> Added for Google spreadsheet"
-
###_API_TOKEN_###
は自分のに変えること - 参照したqiitaの記事では
curl -L
だったが、全部curl -F
じゃないとだめだった(CentOS6, bash環境) - curlの出力を
> /dev/null
に投げないと都合が悪い - 最後の
echo
はあってもなくてもいい
ちなみに、概ね10秒ぐらいかかる。httpsへのPOSTなので概ね安全なはずだが、どうだろう?
こうやって、アカウント作成時とかに勝手に追加されていくと、管理が楽です。
ちなみに見出しをつけてるけど、無くても上のGASのarray[]
に突っ込んだ順列通りに出てきます。