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).但是,如果我访问文件>项目属性,只更新了脚本属性值,则用户属性将保持与我为其设置的原始值相同.
希望这可以帮助.
出于某种原因,似乎无法使用PropertiesService。即使当我在https://developers.google.com/apps-script/guides/properties#reading_data中使用Google示例时,我也会得到null。我已经恢复到旧的UserProperties,并且可以使用,但是应该折旧了……PropertiesService似乎对脚本属性有效。
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |