"草APIサービス" Pixela の Google Apps Script ライブラリを作成しました
TL;DR
"草*1APIサービス" Pixela の Google Apps Script ライブラリを作成しました。
以下 Google Apps Script プロジェクトIDにて公開しています
1lYZA6IF2D62qUb3prkWH4UX5zLEaqy1VrbU2jOwHM3hdjkl7gG3nh33Y
Libraries | Apps Script | Google Developers (英語) を参考に追加・利用いただければと思います。
スクリプトエディタでの入力であれば補完もききます。フォトライフへのアップロードがうまくいってないので、アニメーションgifは以下Tweetに張ってあるものをご参照ください。
https://t.co/VnTMaI5mDV の GASライブラリ、ライブラリ使う側はこんな感じで使えます。(ちっさくてすいません) pic.twitter.com/w8IFCQ2wAL
— K.Saito (@noissefnoc) 2019年3月26日
注意点として
Google Apps Script のライブラリの呼び出し回数制限が現状不明なため、Google から呼び出し制限がかかる可能性がります
- 公開されている制限は Quotas for Google Services | Apps Script | Google Developers だが、ここに明記なし
- 気になる方は GitHub の Release にコピペできる状態で Google Apps Script を置いています。ご利用になるプロジェクトにコピー&ペーストの上ご利用ください*2
用途例
私の使い方だと現状以下の2用途です。
G Suite を利用している組織だと Google Sheets が人も入力可能なデータ管理システムになっていると思うので、その辺で何か用途があると思います。
Google Sheets に連携/人手で入力している情報を日次で pixe.la に連携
元々ヘルスケアや読書/書籍管理*3に Google Sheets を使っていました。
そこで、これを使ってGoogle Apps Script の Trigger でまだ未送信の入力値を送る Google Apps Script を作成して pixe.la に記録しています。
この手の管理だと数値だけでなく、コメントも記録しておきたい(例:走った距離を記録するときに走ってない日の理由を入れたいなど)ので optionalData
に入れておきたいのですが、自分でJSONは書きたくないので併せて実装してあります。
Google Sheets / Google Forms でユーザ/グラフ作成のための GUI を提供
現在、pixe.la にはユーザに関する確認APIがないので管理のために残しておきたいというのがあって利用しています。
グラフに関しては一覧は分かるのですが、新しくグラフを作るときにオプションを思い出せません(細かく設定できる嬉しさの反面ですね)。ドキュメントページを逐次見直すのも面倒なので、設定値をどこかに持っていて欲しいと思ってグラフ作成のための Google Sheets を作っています。Google Sheets の「シートの保護」「入力規制」「カスタムメニュー」などを使って作った例は以下になります。
細かい点としては作成が成功した場合は別シートに設定保存するようにしています。
技術的な話
- 開発
- 言語:TypeScript (+ Node.js)
- ユーティリティー:google/clasp でG Suite からのダウンロード/TypeScript変換/アップロード/バージョン付与
- エディタ:VS Code
- テスト
- テスト用のGoogle Apps Script の Standalone Script のプロジェクトを作ってそこから作成ライブラリを呼び出し
- ライブラリ経由で pixe.la の API を呼び出してのテスト
- その他
- Google Apps Script のスクリプトエディタ上で補完出すためにJSDocをこまめに書いた
今回初 TypeScript と clasp
とGoogle Apps Scriptのライブラリ化だったので色々調べながらで拙いことが多かったように思います。
特に Google Apps Script の以下2点は困ったので暫定対応方法と併せて別途エントリを書きたいと思っています。
- ライブラリとクラス形式にしたときの外部エクスポートの方法
- ライブラリとクラス形式にしたときのスクリプトエディタでの補完