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

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

Чтобы просмотреть дневные квоты и ограничения хранилища для службы свойств, см. Квоты для служб 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. Нажмите Сохранить свойства скрипта .