数日前から、GASに挑戦している。もともとは、Webformでalgoliaを利用してlocationを拾ってみたでD9で現在位置が拾えないことが分かったのが原因である。現時点で、とりあえず、緯度経度が取れるところまでは行った。
実用化まではまだかなりの道程があるが、Google Driveからフォームを作って、そこからScript Editorを起動して、
function doGet() {
var html = HtmlService.createTemplateFromFile("location.html");
myPrint("Started","")
return html.evaluate();
}
function myPrint(lat,long){
Logger.log("%s %s",lat,long);
}
を「コード.gs」に書き、新たにHTMLを作成して、locationと名付け、以下のコードを書いた。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
function currentPosition() {
navigator.geolocation.getCurrentPosition(success);
}
function success(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
google.script.run.withSuccessHandler().myPrint(latitude,longitude)
}
currentPosition()
</script>
</body>
</html>
これで、実行してログを見ると「2021/01/12 18:08:04 情報 35.7??? 139.7???」といった形でデータが取れている。
フォームの起動時か、終了時にトリガーをかけて、記録すれば何とかなりそうだと思っている。
Decoupleの時代にフロントはJavascriptになるのは自然だなあ、と考えさせられたのであった。