LoginSignup
1
1

More than 5 years have passed since last update.

GASのユーザープロパティを、別のスクリプトから読めるのか実験

Posted at

知りたいこと

GASの スタンドアロンスクリプト1 で、セットしたUserPropertyを、それとは別の スタンドアロンスクリプト2 で読むことは可能なのか。

準備

スタンドアロンスクリプト1として prop_1.gs を作成する。

ユーザープロパティをセットする。

prop_1.gs
function setProp() {
  PropertiesService.getUserProperties().setProperty('TEST_KEY', "test_key");
}

スタンドアロンスクリプト2 として prop_2.gs を作成する。

ユーザープロパティの中を見る。

prop_2.gs

function getProp() {
  var properties = PropertiesService.getUserProperties();
  var data = properties.getProperties();
  for (var key in data) {
    Logger.log('Key: %s, Value: %s', key, data[key]);
  }
}

実験

prop_1.gs を実行してから prop_2.gs

1)先に prop_2.gs を実行するとログには下記が表示される。

ログが見つかりません。Logger API を使用してプロジェクトにログを追加してください。

2)prop_1.gs を実行してから prop_2.gs を実行したときのログ

ログが見つかりません。Logger API を使用してプロジェクトにログを追加してください。

結論

GASのユーザープロパティを、別のスクリプトから読むことはできない。

...まぁそりゃそうか。いろんなところでKeyが上書きされてるかもしれいし管理しきれないもんね。
スクリプトをまたいでデータを共有したかったら、データストアとして何か(スプレッドシートとか?)を使う、と。

補足:同じスクリプト内ならできる

(あたり前感あるけど比較として)

prop_3.js

function prop() {
  PropertiesService.getUserProperties().setProperty('TEST_KEY', "test_key");

  var properties = PropertiesService.getUserProperties();
  var data = properties.getProperties();
  for (var key in data) {
    Logger.log('Key: %s, Value: %s', key, data[key]);
  }
}

↓ ログ出力結果

Key: TEST_KEY, Value: test_key
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1