aoma blog

エンジニアの日常とか技術とか

【GAS】ユーザープロパティは2種類ある!?あるいはdeprecatedになったUserPropertiesの代わりはない??

この記事は移転しました。約5秒後に新記事へ移動します。
移動しない場合はココをクリックして新サイトをお楽しみください。

はじめに

普段GASでいろいろ作るんですが、スクリプトファイル横断して同じ値を使いたいときありますよね?
GitHubのIDとかAWSのアクセスキーとかとか。環境変数的な。

これUserPropertiesで実現できるんですが、現在は非推奨になっていて使えません。。どうすればいいですか?

おいおい、いまはPropertiesServiceってのがあって、getUserProperties()で使えるぜ! っていうそこのあなた!もう少々お付き合いください。

実はこれ別物なんです。

ユーザープロパティは2種類ある!?

スクリプトのメニューから、
ファイル→プロジェクトのプロパティ→「ユーザープロパティ」タブ

f:id:aoma23:20190325180058p:plain
ユーザープロパティ

ここでhoge=user_hogeを設定します。

こちら、UserPropertiesでは取得できますが、PropertiesServiceでは利用できません。

  Logger.log(UserProperties.getProperty('hoge')); // user_hoge
  Logger.log(PropertiesService.getUserProperties().getProperty('hoge')); // null

また、UserPropertiesは別スクリプトでも利用できますが、PropertiesService.getUserProperties()はこのスクリプト内のみとなっています。

名前は似てるっていうか同じなのに全くの別物!!

まとめ

ユーザープロパティには2種類ある。

UserProperties PropertiesService.getUserProperties()
エディタから編集 できる できない
スクリプトで参照 できる できない
用途 開発者用の環境変数として スクリプトの実行ユーザー毎の設定値として
その他 非推奨

Stack Overflowでも代替はPropertiesServiceだぜって言われちゃってるし、

このプロパティが本当に非推奨になったのなら、画面からも消して欲しい。。

どなたか詳しい方いませんか??