yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。

この記事は3年以上前に書かれた記事で内容が古い可能性があります

GAS(Google Apps Script)の小ネタ〜変数

2019-06-30

GAS(Google Apps Script)のすごい小ネタ その3

変数を使いたいとき、特に、Secret Keyなど直接書きたくない奴は、「PropertiesService」を使う

function myFunction() {

  // script propaties
  var sProperties = PropertiesService.getScriptProperties();  // script propatiesをとってくる
  sProperties.setProperty('my_val_script', 'my user val yeah');  // script propatiesを設定する
  var scriptVal = sProperties.getProperties()['my_val_script'];  // script propatiesを呼び出して変数「scriptVal」に格納
  
  Logger.log(scriptVal);  // script propatiesをログに出してみる
  
  // user propaties
  var uProperties = PropertiesService.getUserProperties();  // user propatiesをとってくる
  uProperties.setProperty('my_val_user', 'script val yeah');  // user propatiesを設定する
  var userVal = uProperties.getProperties()['my_val_user'];  // user propatiesを呼び出して変数「userVal」に格納
  
  Logger.log(userVal);  // user propatiesをログに出してみる
  
}

実行してログを見ると無事に格納されている

[19-06-30 15:28:36:477 JST] my user val yeah
[19-06-30 15:28:36:557 JST] script val yeah

変数の設定はUIからも可能
「File」>「Project propaties」


その名の通り、User propatiesはユーザーごとの変数で、Script propatiesはスクリプトごとの変数
Secret keyとかを格納するならUser propatiesに入れるのが良さそう

前は「UserPropaties」を使っていたんだけど、使おうとすると以下のようなエラーが出る
もうじき使えなくなるそうなので、代替の「PropertiesService」を使った方が無難

UserProperties API is deprecated.
The API has been marked as deprecated which means that the feature should be avoided and may be removed in the future. Consider using an alternative solution.

「PropertiesService」の詳細の使い方は以下
Class PropertiesService

設定されていないと、「Undefined」が返ってくる
わかりやすい