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

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

Чтобы просмотреть дневные квоты и ограничения хранилища для службы свойств, см. Квоты для служб Google .

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

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

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

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

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

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

Чтобы сохранить одно значение, вызовите метод Properties.setProperty(key, value) соответствующего хранилища, как показано в следующем примере:

сервис/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) . Каждая пара ключ-значение объекта в параметре сохраняется как отдельное свойство:

сервис/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) :

сервис/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() :

сервис/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() возвращают копию сохраненных данных, а не представление в реальном времени, поэтому изменение возвращаемого объекта не приведет к обновлению значения в хранилище свойств. Чтобы обновить данные в магазине, просто сохраните их еще раз:

сервис/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) :

сервис/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() :

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

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

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

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

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