var userProperties = PropertiesService.getUserProperties(); 我的工作不正常?

vas*_*asu 6 google-apps-script

我正在使用PropertiesService创建userproperties,如

      var userProperties = PropertiesService.getUserProperties();
Run Code Online (Sandbox Code Playgroud)

用于存储用户单个令牌用于我的附加组件,当我在userproperties中使用密钥对值设置usertoken时,userProperties.setProperty('USERTOKEN','token'); 在一份文件中.

根据userproperties范围执行此操作后,我可以使用userProperties.getProperty('USERTOKEN')从任何文档中检索用户属性值; 但,

当我这样做时,值为null(即),我无法从其他文档中检索'userProperties'值,

这样,userproperties的范围就会失败.userproperties值仅与创建它的特定文档相关联.

一旦安装了我的附加组件,我每次都会检查所有文件的userproperties值,

        if(value)
         {
          retrieve data;
          }
             else
             {
              authorize;

               }
Run Code Online (Sandbox Code Playgroud)

因此,值为null,并且每次为每个新文档授予用户授权.由于我的附加组件无法从userProperties.getProperty('USERTOKEN')中检索值;

小智 10

根据Properties Service的文档- 保存数据:

"还可以通过脚本编辑器用户界面保存脚本属性,方法是转到文件>项目属性并选择项目属性选项卡.无法在用户界面中设置或查看用户属性和文档属性. "

我不确定这意味着什么,但我认为这意味着即使您能够使用脚本设置属性,如果您在文件>项目属性>用户属性中查看它,该值也不会更新.但这并不意味着该房产没有更新.但是,如果它是您通过脚本设置的脚本属性,则值将在您的视图中更新.

我这样说是因为我通过在doGet()中设置它来尝试它.请参阅以下示例:

//Set properties as global variables
var userProperty = PropertiesService.getUserProperties();
var scriptProperty = PropertiesService.getScriptProperties(); 

function doGet() {

 userProperty.setProperty('uservar', 'Hello');
 scriptProperty.setProperty('scriptvar', 'World');

 Logger.log(userProperty.getProperty('uservar'));
 Logger.log(scriptProperty.getProperty('scriptvar'));

 return HtmlService.createTemplateFromFile('index').evaluate();
}
Run Code Online (Sandbox Code Playgroud)

我在doGet()中做了它,这样我就可以通过刷新我的WebApp页面来检查它.有趣的是,日志显示正确的值(Hello和World).但是,如果我访问文件>项目属性,只更新了脚本属性值,则用户属性将保持与我为其设置的原始值相同.

希望这可以帮助.

  • 这是一个非常有用的答案.它确实让我想知道文件>项目属性>用户属性中用户属性选项卡的值是什么.应用程序脚本方法无法获取或设置其值,因此它似乎完全不相关(并且也极具误导性). (3认同)

the*_*ter 6

出于某种原因,似乎无法使用PropertiesService。即使当我在https://developers.google.com/apps-script/guides/properties#reading_data中使用Google示例时,我也会得到null。我已经恢复到旧的UserProperties,并且可以使用,但是应该折旧了……PropertiesService似乎对脚本属性有效。