Google Apps Scriptの2つのプロパティ設定
- ユーザプロパティ
- スクリプトプロパティ
の設定方法と使い方についてです!
プロパティって?
簡単にいうとプロジェクトなどの内部に保存しておける値です。
任意の「プロパティ名」に対応した「値」を設定しておくことで
ソース上では、「このプロパティ名の値くれ!」とすることで、設定しておいた値を取得できます。
つまりソースコード上には、値を書かなくていいわけです。
なので例えば、ソースを他の人がコピペしたとします。
ソース上の変数だと、ソースを修正しないといけませんよね。
しかしプロパティなら、同じプロパティ名設定して、各個人が違う値を設定すれば、ソースはいじらずに済みます。
またソース上で見せておきたくないような情報なんかも、直接書かずに済みます。
ステキですね!
プロパティの種類
Google Apps Scriptのプロパティは
- ユーザープロパティ
- スクリプトプロパティ
の2種類あります。
ユーザプロパティ
自分のみ見ることができるプロパティです。
どのスクリプトからも見れるプロパティです。
プロジェクトAで設定したプロパティは、プロジェクトBでも参照できます。
スクリプトプロパティ
スクリプトプロパティは、「このプロジェクトが見られる人」なら誰でも見えてしまうプロパティです。
なので共有で共同編集しているような場合、このプロパティの値は見えてしまいます。
ただし製作者でないと編集や削除はできません!
なので「このプロジェクトで必要な値」をセットしておくことで、同じ設定値を使うことができます。
プロパティの設定方法
「ファイル→プロジェクトのプロパティ」を選択。
ここでまだプロジェクト名付けて保存していない場合、プロジェクト名付けるよう要求されるので付けましょう!
「プロジェクトのプロパティ」が開いたら、この2つのタブがターゲットです。
- ユーザープロパティ
- スクリプトプロパティ
対象のプロパティのタブを開いて、値を入力しましょう。
今回は例として、このように入力。
プロパティ種別 | プロパティ名 | 値 |
---|---|---|
ユーザープロパティ | TestUserProperty | 1000 |
スクリプトプロパティ | TestScriptProperty | 2000 |
そして「保存ボタン」を押す。
スクリプトからプロパティを参照する
プロパティを参照するには、このようなスクリプトを書きます。
この例では、参照した値を直接Logger.log()に渡してログ出力しています。
function myFunction() { Logger.log(UserProperties.getProperty('TestUserProperty')); Logger.log(ScriptProperties.getProperty('TestScriptProperty')); }
実行ボタンを押して、ログを開いてみましょう*1。
1000と2000が順番に表示されていますね!
成功です!
別のプロジェクトからプロパティを見てみる
ここで別のプロジェクトを適当に作ってみましょう。
そしてプロパティの設定を見てみます。
ユーザープロパティはある!
スクリプトプロパティはありません!
別プロジェクトから見るユーザプロパティ
この通り、ユーザープロパティは「自分が見れるもの」。
なので、プロジェクトの壁もなく見えてしまいます。
なので命名ルールをちょっと考えないといけないですね。
例えば
- Web APIを使うための、API Keyを保存
- TwitterのAPI Keyを保存するのに「API_KEY」という名称で保存
- 他のWeb APIを使いたい!となった……
……困りますよね?
別プロジェクトから見るスクリプトプロパティ
対してスクリプトは「このプロジェクトで見れるもの」。
なので、他のプロジェクトには影響しません。
ただし前述しましたが、他のユーザからも見えてしまうので、取扱には注意が必要です。
なのでユーザプロパティで例に出した、API Keyなんかは、スクリプトプロパティに保存するのは得策ではないですね。
ざっくりとした使い分け案
この2つは例えば、このように使うと良いかと思います!
プロパティ種別 | 使い方 |
---|---|
ユーザープロパティ | セキュリティ的に必要なもの |
スクリプトプロパティ | アプリ上で必要な固定値(何かの初期値とか) |
プロパティの注意点
ユーザプロパティを使用すると、このようなワーニングが表示されます。
UserProperties API のサポートは終了しています。
ScriptProperties API のサポートは終了しています。
しかしググってみても代替手段が特に見つからない……
ワーニング表示されているだけで、今の所使えるので、ひとまずは大丈夫かとは思います。
ただし、そのうち同じ方法では使えなくなるかもしれませんので、予めご了承くださいませ。
※2018.06.29現在
参考
こちらを参考にしました。ありがとうございました。
*1:Ctrl+Enter