房源服务

通过 Properties 服务,你可以存储 键值对中的简单数据,范围限定为一个脚本、一个脚本用户,或 一个使用插件的文档。时间是 通常用于存储开发者配置或用户偏好设置。属性 绝不会在脚本之间共享。

如需查看媒体资源服务的每日配额和存储空间限制,请参阅 Google 服务的配额

物业商店比较

通过 PropertiesService 全局对象提供了三种方法,每种方法会返回类似的 Properties 对象但具有不同的访问权限,如下表所示:

脚本属性 用户属性 文档属性
访问方法 getScriptProperties() getUserProperties() getDocumentProperties()
数据共享平台 某个脚本、插件或 Web 应用的所有用户 脚本、插件或 Web 应用的当前用户 在打开的文档中使用某个插件的所有用户
通常用于 应用级配置数据,例如应用的用户名和密码 开发者的外部数据库 特定于用户的设置,例如公制或英制单位 文档专属数据,例如嵌入式图表的来源网址

数据格式

Properties 服务会将所有数据存储为键值对中的字符串。数据类型 尚不是字符串的 ID 会自动转换为字符串,包括 方法。

正在保存数据

如需保存单个值,请调用 Properties.setProperty(key, value) 方法 相应商店的名称,如以下示例所示:

service/propertyService.gs
try {
  // Set a property in each of the three property stores.
  const scriptProperties = PropertiesService.getScriptProperties();
  const userProperties = PropertiesService.getUserProperties();
  const documentProperties = PropertiesService.getDocumentProperties();

  scriptProperties.setProperty('SERVER_URL', 'http://www.example.com/');
  userProperties.setProperty('DISPLAY_UNITS', 'metric');
  documentProperties.setProperty('SOURCE_DATA_ID',
      '1j3GgabZvXUF177W0Zs_2v--H6SPCQb4pmZ6HsTZYT5k');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

要批量保存数据,请将键值对映射传递给 Properties.setProperties(properties)。 参数中对象的每个键值对都存储为 属性:

service/propertyService.gs
try {
  // Set multiple script properties in one call.
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperties({
    'cow': 'moo',
    'sheep': 'baa',
    'chicken': 'cluck'
  });
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

读取数据

要检索之前保存的单个值,请调用 Properties.getProperty(key):

service/propertyService.gs
try {
  // Get the value for the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  const units = userProperties.getProperty('DISPLAY_UNITS');
  console.log('values of units %s', units);
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

要检索当前属性存储区中的所有值,请调用 Properties.getProperties():

service/propertyService.gs
try {
  // Get multiple script properties in one call, then log them all.
  const scriptProperties = PropertiesService.getScriptProperties();
  const data = scriptProperties.getProperties();
  for (const key in data) {
    console.log('Key: %s, Value: %s', key, data[key]);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

修改数据

getProperty()getProperties() 方法会返回所存储的 数据,而不是实时视图,因此更改返回的对象不会更新值 。要更新存储区中的数据,只需再次保存即可:

service/propertyService.gs
try {
  // Change the unit type in the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  let units = userProperties.getProperty('DISPLAY_UNITS');
  units = 'imperial'; // Only changes local value, not stored value.
  userProperties.setProperty('DISPLAY_UNITS', units); // Updates stored value.
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

删除数据

要删除单个值,请调用 Properties.deleteProperty(key):

service/propertyService.gs
try {
  // Delete the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty('DISPLAY_UNITS');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

要删除当前存储区中的所有房源,请调用 Properties.deleteAllProperties():

service/propertyService.gs
try {
  // Get user properties in the current script.
  const userProperties = PropertiesService.getUserProperties();
  // Delete all user properties in the current script.
  userProperties.deleteAllProperties();
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

手动管理脚本属性

您最多可手动添加 50 个自定义属性,以键值对中的字符串形式添加 对。要添加 50 个以上的房源,您需要 需要使用上述 保存数据。 从项目设置页面设置脚本属性时,您无法 引用脚本变量。

添加脚本属性

  1. 打开您的 Apps 脚本项目。
  2. 点击左侧的项目设置 项目设置的图标
  3. 要添加第一个属性,请在 Script Properties 下点击 添加脚本属性
  4. 要添加第二个属性和后续属性,请在 Script Properties 下点击 修改脚本属性 > 添加脚本属性
  5. 对于属性,请输入键名称。
  6. 对于,请输入键的值。
  7. (可选)如需添加更多属性,请点击添加脚本属性
  8. 点击保存脚本属性

修改脚本属性

  1. 打开您的 Apps 脚本项目。
  2. 点击左侧的项目设置 项目设置的图标
  3. 脚本属性下,点击修改脚本属性
  4. 为您要更改的每个属性更改键名称和键值。
  5. 点击保存脚本属性

删除脚本属性

  1. 打开您的 Apps 脚本项目。
  2. 点击左侧的项目设置 项目设置的图标
  3. 脚本属性下,点击修改脚本属性
  4. 在要删除的媒体资源旁边,点击“移除”图标
  5. 点击保存脚本属性