Служба недвижимости

Служба свойств хранит данные в виде пар «ключ-значение», ограниченных одним скриптом, одним пользователем скрипта или одним документом, в котором используется надстройка . Обычно она используется для хранения конфигурации разработчика или пользовательских настроек. Свойства никогда не используются совместно несколькими скриптами.

Чтобы просмотреть ежедневные квоты и лимиты хранилища для сервиса Properties, см. раздел «Квоты для сервисов Google» .

Сравнение магазинов недвижимости

Глобальный объект PropertiesService предлагает три метода, каждый из которых возвращает аналогичный объект Properties , но с разными правами доступа, как показано в следующей таблице:

Свойства скрипта Свойства пользователя Свойства документа
Способ доступа getScriptProperties() getUserProperties() getDocumentProperties()
Данные, которыми обмениваются Все пользователи скрипта, дополнения или веб-приложения Текущий пользователь скрипта, дополнения или веб-приложения Все пользователи дополнения в открытом документе
Обычно используется для Данные конфигурации, относящиеся ко всему приложению, такие как имя пользователя и пароль для внешней базы данных разработчика. Настройки, специфичные для пользователя, например, метрические или имперские единицы измерения. Данные, специфичные для документа, например, URL-адрес источника для встроенной диаграммы.

Формат данных

Служба Properties хранит все данные в виде строк в парах «ключ-значение». Типы данных, которые изначально не являются строками, автоматически преобразуются в строки, включая методы, содержащиеся в сохраненных объектах.

Сохранение данных

Для сохранения отдельного значения вызовите метод 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 :

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 :

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);
}

Управляйте свойствами скрипта вручную.

На странице настроек проекта можно вручную добавить до пятидесяти пользовательских свойств в виде строк в парах «ключ-значение». Чтобы добавить более пятидесяти свойств, добавьте их программно, используя методы, описанные в предыдущем разделе «Сохранение данных» . При задании свойств скрипта на странице настроек проекта не следует ссылаться на переменные скрипта.

Добавить свойства скрипта

  1. Откройте свой проект Google Apps Script.
  2. Слева нажмите «Настройки проекта» . Значок для настроек проекта .
  3. Чтобы добавить первое свойство, в разделе «Свойства скрипта» нажмите «Добавить свойство скрипта» .
  4. Чтобы добавить второе и последующие свойства, в разделе «Свойства скрипта» нажмите «Изменить свойства скрипта» > «Добавить свойство скрипта» .
  5. В поле «Свойства» введите имя ключа.
  6. В поле «Значение» введите значение ключа.
  7. (Необязательно) Чтобы добавить дополнительные свойства, нажмите «Добавить свойство скрипта» .
  8. Нажмите «Сохранить свойства скрипта» .

Редактировать свойства скрипта

  1. Откройте свой проект Apps Script.
  2. Слева нажмите «Настройки проекта» . Значок для настроек проекта .
  3. В разделе «Свойства сценария» нажмите «Изменить свойства сценария» .
  4. Внесите изменения в имя ключа и значение ключа для каждого свойства, которое вы хотите изменить.
  5. Нажмите «Сохранить свойства скрипта» .

Удалить свойства скрипта

  1. Откройте свой проект Apps Script.
  2. Слева нажмите «Настройки проекта» . Значок для настроек проекта .
  3. В разделе «Свойства сценария» нажмите «Изменить свойства сценария» .
  4. Рядом с свойством, которое вы хотите удалить, нажмите «Удалить .
  5. Нажмите «Сохранить свойства скрипта» .