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

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

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

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

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

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

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

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

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

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

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

Изменить свойства скрипта

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

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

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