【问题标题】:Manually setting user bound properties手动设置用户绑定属性
【发布时间】:2021-04-26 00:44:32
【问题描述】:

我正在编写一个脚本,该脚本需要存储 API 密钥。 在旧编辑器中,有一个选项可以直接从编辑器的 UI 中设置用户属性(同时已被删除),而我在新编辑器中看不到任何类似的选项。我看到了多个答案,详细说明了如何通过电子表格的 UI 或其他“挑剔”的方式来设置它们。 是否可以直接通过 Script UI 设置该属性?

【问题讨论】:

    标签: google-apps-script editor app-secret


    【解决方案1】:

    在新编辑器中不再可用。我有两个选择。

    1. 切换到旧版编辑器以使用脚本 UI 设置您的属性。

    2. 您可以使用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));
      })
    

    输出:


    工作原理:

    1. 当您获得PropertiesService.getUserProperties() 时,它将返回一个properties object,作为访问您的用户属性的接口

    2. 您可以使用setProperties(properties) 设置用户特定的键值对。

    3. 您可以使用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));
      })
    

    所有者结果:

    另一个用户结果:

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      相关资源
      最近更新 更多