はじめに
使用したアプリ
tasker:https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm
taskerを使いたい!
taskerってなんぞや?
Androidのセンサ類をリスナ代わりに使えるアプリ。
いろいろ自動化できる。
今回やろうとしたこと
tasker → GAS → 諸々の処理
今回は諸々の処理はあとから考えるのでログ出力にしておいて、それ以外の部分について準備していく。
しかしいきなり蹴躓く。
taskerからhttpリクエストを送信→tasker上では成功しているが、GASのdoPostメソッドに到達していない。
ステータスコードは200(成功)。
なんでー?
ログインできない!
htmlでレスポンスを出力させ、見てみるとログイン画面に飛ばされていることがわかった。
なるほど、chromeで実行したときはログインされてたから問題なかったのか。
じゃあhttpを駆使して手動でログインしないといけない…?(面倒くさそう…)
AOuth2.0で呼び出してみる?
ココらへんを参考に。
https://qiita.com/yamazako/items/84dab378c9899b40c780
これ、そんな厳密にログインする必要あるのか?→ない。
ログインしなくても利用可能にする
アプリケーションにアクセスできるユーザーの選択肢は全員(匿名ユーザーを含む)を選択します。
これを選ぶことでGoogleアカウントにログインしていないユーザーでもAPIを叩くことができます。
https://qiita.com/rf_p/items/2eeb5e5e863fb3f42860
これなら簡単。
他の人にpostされた場合を考えたいなら、passwordを一緒にhttpに乗せればいいと思う。(パケット上ではバレバレかもしれないけど。)
それでも動かない!
htmlは実行した胸が表示されたが、loggerで吐き出したはずのログが表示されない。
どうして…。
doPost,doGetメソッド内ではloggerは使えない。
らしい。
https://qiita.com/takanakahiko/items/c8990145605eb4e1452d
結局スプレッドシートにログ代わりになにか出力することに。
やっと実行までたどり着く
ようやく実行完了。
コードを書く以外の部分でだいぶ時間を取られた。
でもこれでスマホについているセンサー類をリスナにしてなにかの処理をキックできるようになった。(少なくともサーバー上では。)
なおかつ、開発がスクリプトエディタ上で完結するので出先だろうがなんだろうがコードを触れる。
スバラシー。