gpt4 book ai didi

google-apps-script - var userProperties = PropertiesService.getUserProperties();不适合我?

转载 作者:行者123 更新时间:2023-12-04 13:19:15 25 4
gpt4 key购买 nike

我正在使用 PropertiesService 创建用户属性,如

      var userProperties = PropertiesService.getUserProperties();

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

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

当我这样做时,该值为空(即),我无法从其他文档中检索“userProperties”值,

因此,用户属性的范围失败。 userproperties 值仅与创建它的特定文档相关联。

安装附加组件后,我曾经每次检查所有文档的 userproperties 值,
        if(value)
{
retrieve data;
}
else
{
authorize;

}

因此 value 为 null 并且用户每次都需要为每个新文档进行授权。由于我的附加组件无法从 userProperties.getProperty('USERTOKEN'); 检索值;

最佳答案

根据文档 Properties Service - Saving Data :

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

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

我之所以这么说是因为我通过在 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();
}

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

希望这可以帮助。

关于google-apps-script - var userProperties = PropertiesService.getUserProperties();不适合我?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24908799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com