Usługa nieruchomości

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

Aby wyświetlić dzienne limity i limity miejsca na dane w usłudze Usługi, przeczytaj artykuł o limitach w usługach Google.

Porównywanie sklepów z nieruchomościami

Obiekt globalny PropertiesService udostępnia 3 metody, z których każda zwraca podobny obiekt Properties, ale z różnymi uprawnieniami dostępu. Jak widać w tej tabeli:

Właściwości skryptu Właściwości użytkownika Właściwości dokumentu
Sposób 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 konfiguracji dotyczące całej aplikacji, takie jak nazwa użytkownika i hasło do zewnętrznej bazy danych dewelopera ustawienia dostosowane do użytkownika, np. jednostki metryczne lub imperialne, dane specyficzne dla dokumentów, takie jak źródłowy adres URL umieszczonego wykresu;

Format danych

Usługa Właściwości przechowuje wszystkie dane pod postacią ciągów znaków w parach klucz-wartość. Typy danych, które nie są jeszcze ciągami tekstowymi, są automatycznie konwertowane na ciągi tekstowe. Dotyczy to też metod zawartych w zapisanych obiektach.

Oszczędzanie danych

Aby zapisać pojedynczą wartość, wywołaj metodę Properties.setProperty(key, value) odpowiedniego sklepu, jak pokazano 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 zapisywać dane zbiorczo, 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);
}

Odczytywanie danych

Aby pobrać jedną zapisaną wcześniej wartość, wywołaj metodę 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 usług, wywołaj metodę 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 podgląd na żywo, więc zmiana zwróconego obiektu nie spowoduje zaktualizowania 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ąć jedną wartość, wywołaj metodę 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 usługi w bieżącym magazynie, wywołaj metodę 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 jako ciągi znaków w parach klucz-wartość. Aby dodać więcej niż 50 właściwości, musisz dodać je automatycznie za pomocą metod opisanych powyżej w sekcji Zapisywanie danych. Podczas ustawiania właściwości skryptu na stronie ustawień projektu nie możesz się odwoływać 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 usługi, 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 parę klucza dla każdej właściwości, którą chcesz zmodyfikować.
  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.