UserProperties与userProperties - 如何维护脚本之间的持久性?

时间:2015-01-08 15:21:19

标签: google-apps-script

旧的UserProperties维护了用户脚本之间的持久性 - “用户属性是用户唯一的键值对。用户属性是按用户限定的;任何以用户身份运行的脚本都可以访问该用户的用户属性只要。” (https://developers.google.com/apps-script/reference/properties/user-properties

但是,新属性服务userProperties的行为有所不同 - 它仅与“当前脚本的当前用户”(https://developers.google.com/apps-script/guides/properties#comparison_of_property_stores)相关。

我需要在脚本之间保存数据。任何人都知道如何在不将数据保存在外部电子表格或文档中以便通过脚本检索的情况下完成这项工作吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用脚本作为彼此的库可以获得很多里程。 documentation为变量和属性的范围提供了一个很好的指导just below

基本上,您可以传入或传出驻留在自己范围内的库的脚本对象。

脚本1:

//set a dummy data object

PropertiesService
  .getUserProperties()
  .setProperty('data', 'i come from script 1');

function script1Properties() {  
  var up = PropertiesService.getUserProperties();
  return up;
}

脚本2:

//set a dummy data object in this script too.

PropertiesService
  .getUserProperties()
  .setProperty('data', 'i come from script 2');

function script2() {

  var up1 = PropertiesService.getUserProperties();
  var up2 = Script1.publishProperties();

  Logger.log(up1.getProperty('data'));
  Logger.log(up2.getProperty('data'));

  debugger
}

将脚本1作为库附加到脚本2。 Library attachment Screen

> Run Script

控制台中的输出:

[15-01-08 15:55:41:493 GMT] i come from script 1
[15-01-08 15:55:41:501 GMT] i come from script 2