手动设置用户绑定属性
Posted
技术标签:
【中文标题】手动设置用户绑定属性【英文标题】:Manually setting user bound properties 【发布时间】:2021-04-26 00:44:32 【问题描述】:我正在编写一个脚本,该脚本需要存储 API 密钥。 在旧编辑器中,有一个选项可以直接从编辑器的 UI 中设置用户属性(同时已被删除),而我在新编辑器中看不到任何类似的选项。我看到了多个答案,详细说明了如何通过电子表格的 UI 或其他“挑剔”的方式来设置它们。 是否可以直接通过 Script UI 设置该属性?
【问题讨论】:
【参考方案1】:在新编辑器中不再可用。我有两个选择。
切换到旧版编辑器以使用脚本 UI 设置您的属性。
您可以使用Properties Service 将简单数据存储在一个脚本(脚本属性)、脚本的一个用户(用户属性)或一个文档(文档属性)范围内的键值对中。
Properties Service Methods:
getDocumentProperties(),获取所有用户都可以在打开的文档、电子表格或表单中访问的属性存储(仅适用于此脚本)。
getScriptProperties(), 获取所有用户都可以访问的属性存储,但只能在此脚本内。
getUserProperties(), 获取只有当前用户才能访问的属性存储,并且只能在此脚本中访问。
如何创建用户属性键值对的示例:
// Sets several user properties, then retrieves them and logs them.
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperties(
'cow': 'moo',
'sheep': 'baa',
'chicken': 'cluck'
);
var animalSounds = userProperties.getProperties();
for (var kind in animalSounds)
Logger.log('A %s goes %s!', kind, animalSounds[kind]);
var keys = userProperties.getKeys();
keys.forEach(key=>
Logger.log("Key: "+key+", Value: "+userProperties.getProperty(key));
)
输出:
工作原理:
当您获得PropertiesService.getUserProperties() 时,它将返回一个properties object,作为访问您的用户属性的接口
您可以使用setProperties(properties) 设置用户特定的键值对。
您可以使用getProperty(key) 或getProperties() 访问您的键值对,如示例代码所示。
测试
我在添加用户属性后修改了脚本并在 2 个不同的用户(所有者和另一个用户)上运行代码,以验证添加的用户属性是否仅对创建它的用户可用。
代码:
var userProperties = PropertiesService.getUserProperties();
var keys = userProperties.getKeys();
Logger.log(keys.length);
keys.forEach(key=>
Logger.log("Key: "+key+", Value: "+userProperties.getProperty(key));
)
所有者结果:
另一个用户结果:
【讨论】:
以上是关于手动设置用户绑定属性的主要内容,如果未能解决你的问题,请参考以下文章
绑定到 ListView 的 SelectedItem 属性时设置初始选定项