ChangeLog - noissefnoc

日々のChangeLog。趣味のコードとかの話

"草APIサービス" Pixela の Google Apps Script ライブラリを作成しました

TL;DR

"草*1APIサービス" PixelaGoogle Apps Script ライブラリを作成しました。

github.com

以下 Google Apps Script プロジェクトIDにて公開しています

  • 1lYZA6IF2D62qUb3prkWH4UX5zLEaqy1VrbU2jOwHM3hdjkl7gG3nh33Y

Libraries  |  Apps Script  |  Google Developers (英語) を参考に追加・利用いただければと思います。

スクリプトエディタでの入力であれば補完もききます。フォトライフへのアップロードがうまくいってないので、アニメーションgifは以下Tweetに張ってあるものをご参照ください。

注意点として

Google Apps Script のライブラリの呼び出し回数制限が現状不明なため、Google から呼び出し制限がかかる可能性がります

用途例

私の使い方だと現状以下の2用途です。

  • Google Sheets に連携/人手で入力している情報を日次で pixe.la に連携
  • Google Sheets / Google Forms でユーザ/グラフ作成のための GUI を提供

G Suite を利用している組織だと Google Sheets が人も入力可能なデータ管理システムになっていると思うので、その辺で何か用途があると思います。

Google Sheets に連携/人手で入力している情報を日次で pixe.la に連携

元々ヘルスケアや読書/書籍管理*3Google Sheets を使っていました。

そこで、これを使ってGoogle Apps Script の Trigger でまだ未送信の入力値を送る Google Apps Script を作成して pixe.la に記録しています。

f:id:noissefnoc:20190408162549p:plain
スプレッドシートの記録のpixe.laへの反映

この手の管理だと数値だけでなく、コメントも記録しておきたい(例:走った距離を記録するときに走ってない日の理由を入れたいなど)ので optionalData に入れておきたいのですが、自分でJSONは書きたくないので併せて実装してあります。

Google Sheets / Google Forms でユーザ/グラフ作成のための GUI を提供

現在、pixe.la にはユーザに関する確認APIがないので管理のために残しておきたいというのがあって利用しています。

グラフに関しては一覧は分かるのですが、新しくグラフを作るときにオプションを思い出せません(細かく設定できる嬉しさの反面ですね)。ドキュメントページを逐次見直すのも面倒なので、設定値をどこかに持っていて欲しいと思ってグラフ作成のための Google Sheets を作っています。Google Sheets の「シートの保護」「入力規制」「カスタムメニュー」などを使って作った例は以下になります。

f:id:noissefnoc:20190408145309p:plain
Google Sheets で擬似入力フォーム
f:id:noissefnoc:20190408145311p:plain
Google Sheets のカスタムメニューから pixe.la に投稿

細かい点としては作成が成功した場合は別シートに設定保存するようにしています。

技術的な話

  • 開発
    • 言語:TypeScript (+ Node.js)
    • ユーティリティーgoogle/clasp でG Suite からのダウンロード/TypeScript変換/アップロード/バージョン付与
    • エディタ:VS Code
  • テスト
    • テスト用のGoogle Apps Script の Standalone Script のプロジェクトを作ってそこから作成ライブラリを呼び出し
    • ライブラリ経由で pixe.la の API を呼び出してのテスト
  • その他

今回初 TypeScript と claspGoogle Apps Scriptのライブラリ化だったので色々調べながらで拙いことが多かったように思います。

特に Google Apps Script の以下2点は困ったので暫定対応方法と併せて別途エントリを書きたいと思っています。

  • ライブラリとクラス形式にしたときの外部エクスポートの方法
  • ライブラリとクラス形式にしたときのスクリプトエディタでの補完

*1:草というのはGitHubのコミットグラフ1日1ピクセルで、コミットの多寡で色の濃淡が変わるグラフ。GitHubではディフォルトの色が緑色なので通称「草」

*2:ライブラリとして利用されたい場合はSharing a library を参考にバージョン付け後、適切な公開範囲を設定してご利用ください

*3:この手のサービス、商品情報元のAmazonアフィリエイト利率を下げた影響などでサービス維持できない、洋書がco.jpだと登録できないものがあるなどの理由で使ってません