我正在编写一个脚本,它需要存储一个 API 密钥。在旧编辑器中,有一个选项可以直接从编辑器的 UI 中设置用户属性(同时已被删除),而我在新编辑器中看不到任何类似的选项。我看到了多个答案,详细说明了如何通过电子表格的 UI 或其他“挑剔”的方式来设置它们。是否可以直接通过脚本 UI 设置该属性?
问问题
63 次
1 回答
1
它在新编辑器中不再可用。我有两个选择。
切换到旧版编辑器以使用脚本 UI 设置您的属性。
您可以使用属性服务将简单数据存储在一个脚本(脚本属性)、脚本的一个用户(用户属性)或一个文档(文档属性)范围内的键值对中。
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()时,它将返回一个属性对象,该对象充当访问用户属性的接口
您可以使用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));
})
所有者结果:
另一个用户结果:
于 2021-01-21T15:49:21.710 回答