Usługa nieruchomości

Usługa właściwości umożliwia przechowywanie prostych danych w parach klucz-wartość ograniczonych do jednego skryptu, jednego użytkownika skryptu lub dokumentu, w którym jest używany dodatek. Zwykle służy do przechowywania konfiguracji dewelopera lub ustawień użytkownika. Właściwości nigdy nie są współdzielone przez skrypty.

Dzienne limity miejsca i limitów miejsca na dane w usłudze Właściwości znajdziesz w artykule Limity dla usług Google.

Porównanie sklepów nieruchomości

Obiekt globalny PropertiesService udostępnia 3 metody, z których każda zwraca podobny obiekt Properties, ale z innymi prawami dostępu, jak pokazano w tej tabeli:

Właściwości skryptu Właściwości użytkownika Właściwości dokumentu
Sposób uzyskania dostępu getScriptProperties() getUserProperties() getDocumentProperties()
Dane udostępniane między Wszyscy użytkownicy skryptu, dodatku lub aplikacji internetowej Bieżący użytkownik skryptu, dodatku lub aplikacji internetowej Wszyscy użytkownicy dodatku w otwartym dokumencie
Typowe zastosowanie dane konfiguracyjne obejmujące całą aplikację, takie jak nazwa użytkownika i hasło do zewnętrznej bazy danych dewelopera; Ustawienia dla konkretnego użytkownika, np. jednostki metryczne lub jednostki imperialne dane dotyczące konkretnego dokumentu, takie jak źródłowy adres URL wykresu umieszczonego na stronie;

Format danych

Usługa Właściwości przechowuje wszystkie dane jako ciągi znaków w parach klucz-wartość. Typy danych, które nie są jeszcze ciągami znaków, są automatycznie konwertowane na ciągi znaków, w tym metody zawarte w zapisanych obiektach.

Zapisuję dane

Aby zapisać pojedynczą wartość, wywołaj metodę Properties.setProperty(key, value) odpowiedniego sklepu, jak w tym przykładzie:

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

Aby zbiorczo zapisywać dane, przekaż mapę par klucz-wartość do funkcji Properties.setProperties(properties). Każda para klucz-wartość obiektu w parametrze jest przechowywana jako osobna właściwość:

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

Odczyt danych

Aby pobrać jedną zapisaną wcześniej wartość, wywołaj 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);
}

Aby pobrać wszystkie wartości z bieżącego magazynu właściwości, wywołaj 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);
}

Modyfikowanie danych

Metody getProperty() i getProperties() zwracają kopię zapisanych danych, a nie widok na żywo, dlatego zmiana zwróconego obiektu nie spowoduje aktualizacji wartości w magazynie właściwości. Aby zaktualizować dane w sklepie, po prostu zapisz je ponownie:

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

Usuwanie danych

Aby usunąć pojedynczą wartość, wywołaj 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);
}

Aby usunąć wszystkie właściwości w bieżącym magazynie, wywołaj 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);
}

Ręczne zarządzanie właściwościami skryptu

Na stronie ustawień projektu możesz ręcznie dodać maksymalnie 50 właściwości niestandardowych w postaci ciągów w parach klucz-wartość. Aby dodać więcej niż 50 usług, musisz dodać je automatycznie, korzystając z metod opisanych powyżej w sekcji Zapisywanie danych. Po ustawieniu właściwości skryptu na stronie ustawień projektu nie możesz odwoływać się do zmiennych skryptu.

Dodaj właściwości skryptu

  1. Otwórz projekt Apps Script.
  2. Po lewej stronie kliknij Ustawienia projektu Ikona ustawień projektu.
  3. Aby dodać pierwszą właściwość, w sekcji Właściwości skryptu kliknij Dodaj właściwość skryptu.
  4. Aby dodać drugą i kolejne właściwości, w sekcji Właściwości skryptu kliknij Edytuj właściwości skryptu > Dodaj właściwość skryptu.
  5. W polu Usługa wpisz nazwę klucza.
  6. W polu Wartość wpisz wartość klucza.
  7. (Opcjonalnie) Aby dodać więcej właściwości, kliknij Dodaj właściwość skryptu.
  8. Kliknij Zapisz właściwości skryptu.

Edytuj właściwości skryptu

  1. Otwórz projekt Apps Script.
  2. Po lewej stronie kliknij Ustawienia projektu Ikona ustawień projektu.
  3. W sekcji Właściwości skryptu kliknij Edytuj właściwości skryptu.
  4. Zmień nazwę i wartość klucza w przypadku każdej właściwości, którą chcesz zmienić.
  5. Kliknij Zapisz właściwości skryptu.

Usuń właściwości skryptu

  1. Otwórz projekt Apps Script.
  2. Po lewej stronie kliknij Ustawienia projektu Ikona ustawień projektu.
  3. W sekcji Właściwości skryptu kliknij Edytuj właściwości skryptu.
  4. Obok usługi, którą chcesz usunąć, kliknij Usuń .
  5. Kliknij Zapisz właściwości skryptu.