ハピタス登録で1,000円分になるURL
GAS楽しい
ブラウザにGET文で引数つけた文字列ぶっ込んでENTERすれば、GoogleAppScript(GAS)で作られたSheetを更新できるようにしたい。
とりあえずGET文でSheet更新するところまではできた。
あとはこれをラズパイから更新できるようにしたいのだが、Googleのアカウント認証を実装しないといけないみたい。
まずは pi3 からGoogleスプレッドを扱えるようにする。
Pi3にgspreadインストール
$ pip3 install gspread
$ pip3 install oauth2client
sudo でも入れておくか(daemon動作の時にはrootで動くらしいし)
$ sudo pip3 install gspread
$ sudo pip3 install oauth2client
GCPでプロジェクト作成
GCP(GoogleCloudPlatform)でプロジェクト作成いるんか。
ちなGCP請求確認
いつのまにかAPI利用料取られてないかは心配(常に確認しないと)。
https://console.cloud.google.com/billing
Google Drive API 有効化
Google Sheets API 有効化
認証情報を設定する
続きは後日。
最終のゴール
Pi3で「会場参加者のQRコードを読み込んでGASの受付シートに書き込む」つまり受付システムを作る。
function onEdit(){
var sh=SpreadsheetApp.getActiveSheet()
var rng=sh.getActiveCell()
var r =rng.getValue()
var row=rng.getRow()
var col=rng.getColumn()
var today=new Date
if(row >= 3 && col==4){
// チェックボックスがTRUEの場合 rが真
if (r){
sh.getRange(row,5).setValue(today)
// sh.getRange(row,5).setValue(now()-trunc(now()))
}
// チェックボックスがFALSE
else {
sh.getRange(row,5).setValue("")
}
}
}
function doGet(e) {
var sh2 = SpreadsheetApp.getActiveSheet();
// sh2.appendRow([1]);
// sh2.appendRow([new Date(), 1]);
// sh2.appendRow([1, new Date()]);
// let Day_Data = "2020/12/24 12:12:12";
// let Day_Data = new Date(); //today()
// ## ブラウザから更新
// Utilities.formatDate(new Date(Day_Data), "JST", "yyyy/MM/dd HH:mm:ss");
//// myDate = Utilities.formatDate(new Date(), "JST", "HH:mm");
// sh2.appendRow([A列の値, B列の値, C列の値, ...])
//// sh2.appendRow([1, myDate, "TRUE"]);
// ## ブラウザから更新(引数data1=1234あり)
// 上の「実行」ボタンではエラーになるが、この↑URLをブラウザから叩くとSheetのほうは(parameterの値で)正しく更新されている
var myARG1 = e.parameter.data1;
Logger.log(myARG1);
sh2.appendRow([1, myDate, "TRUE", myARG1]);
Logger.log("OK");
// return("OKK");
}