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

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

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

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

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

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

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

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

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

Чтобы сохранить одно значение, вызовите метод 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);
}

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

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

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

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

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

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

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

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