スマレジAPIを使って、簡単なアプリケーションを作ってみる(実装編1:GASの定期実行とプロパティサービス)
こんにちは!株式会社スマレジ、開発部のmasaです!
今週の大阪は梅雨らしく雨が降ったり止んだりゲリラったりと、傘が手放せない一週間でした。
スマレジでも現在週1回のリモートワークを実施していて、メンバー間で調整をしながら、リモートワークにtryしています!
やってみて思うのは、緊急事態宣言中のリモートワークと違って、オフィスにも人がいるため、オフィスのコミュニケーションをWatchできない点を、どうカバーしていくのかが、今後の課題になりそうって感じです。
ただ、裏を返せば、リモート組と共有するために、チャットやチケットにコミュニケーションの記録を記載するようになるので、今まで以上にコミュニケーションログが残るようにもなっています。これは、後々になって「あの時どうしてそういう決定にしたんだっけ?」と思い返すときにとても助かるので、慣れてくれば、とても良いサイクルなのかなと思っています。
すいません、前置きが長くなりました(~_~;)
今日はGASで連携アプリを作る上での、環境整備と、初期設定部分の実装です。
clasp導入
以前のブログで紹介したclaspを利用して、GASのプロジェクトを作っていきます。
clasp login #claspにログイン clasp create #GASのプロジェクトを作成。今回はstandaloneを選択 clasp open #作成したプロジェクトをブラウザで開く
定期実行用のトリガーを設定する
例えば、下記のような時間をログに出力する関数があるとします。
function execute() { Logger.log(new Date().toString()); }
これを1時間に1回定期実行したい場合、GASのプロジェクトに「トリガー」を設定することで、実現できます。 ※ これは「公開」の「ウェブアプリケーションとして公開」を実施した後に行ってください。
- まず、エディタ画面の「編集」から「現在のプロジェクトのトリガー」を選択。
- トリガーの追加を選択
- 下記の画像のように、実行するメソッドとバージョン、時間間隔、エラー通知を設定。
これでOKです!簡単ですね。 また、トリガーを動的に設定したい場合は、下記の記事をご参考ください。
大域変数を隠蔽したい場合は、プロパティサービスを使う
今回作る売り上げ通知アプリの場合、スマレジ・プラットフォームAPIの接続情報(トークン・シークレット)などは、 出来る限り隠蔽しておきたいですよね。 こういった、ハードコーディングしたくない値は、「プロパティサービス」を使って設定することで、ソース状に定数名として 扱うことができるようになります。 これも、やり方は簡単です。
- 「ファイル」→「プロジェクトのプロパティ」を選ぶ。
- 「スクリプトのプロパティ」タブを選んで、定数名と値を設定する。
こうして設定した定数は、下記のようなソースで取得することが出来ます。
const TOKEN = PropertiesService.getScriptProperties().getProperty("定数名");
これは、プロジェクト内ならどこでも同じ容量で参照できるため、 アプリごとの環境情報なども入れておくと良いと思います。