Servizio proprietà

Il servizio Proprietà ti consente di memorizzare dati semplici in coppie chiave-valore limitate a uno script, a un utente di uno script o a un documento in cui viene utilizzato un componente aggiuntivo. In genere viene utilizzato per memorizzare la configurazione dello sviluppatore o le preferenze dell'utente. Le proprietà non vengono mai condivise tra gli script.

Per visualizzare le quote giornaliere e i limiti di spazio di archiviazione per il servizio Proprietà, consulta Quote per i servizi Google.

Confronto dei negozi di proprietà

L'oggetto globale PropertiesService offre tre metodi, ognuno dei quali restituisce un oggetto Properties simile, ma con diritti di accesso diversi, come mostrato nella tabella seguente:

Proprietà script Proprietà utente Proprietà documento
Metodo di accesso getScriptProperties() getUserProperties() getDocumentProperties()
Dati condivisi tra Tutti gli utenti di uno script, di un componente aggiuntivo o di un'app web L'utente corrente di uno script, di un componente aggiuntivo o di un'applicazione web Tutti gli utenti di un componente aggiuntivo nel documento aperto
Generalmente utilizzato per Dati di configurazione a livello di app, come il nome utente e la password per il database esterno dello sviluppatore Impostazioni specifiche dell'utente, ad esempio unità metriche o imperiali Dati specifici del documento, come l'URL di origine di un grafico incorporato

Formato dei dati

Il servizio Proprietà memorizza tutti i dati come stringhe in coppie chiave/valore. I tipi di dati che non sono già stringhe vengono convertiti automaticamente in stringhe, inclusi i metodi contenuti negli oggetti salvati.

Salvataggio dei dati

Per salvare un singolo valore, chiama il metodo Properties.setProperty(key, value) dell'archivio appropriato, come mostrato nell'esempio seguente:

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

Per salvare i dati collettivamente, passa una mappa di coppie chiave-valore a Properties.setProperties(properties). Ogni coppia chiave-valore dell'oggetto nel parametro viene archiviata come proprietà distinta:

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

Lettura dei dati

Per recuperare un singolo valore salvato in precedenza, chiama 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);
}

Per recuperare tutti i valori nell'attuale archivio delle proprietà, chiama 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);
}

Modifica dei dati

I metodi getProperty() e getProperties() restituiscono una copia dei dati archiviati, non una visualizzazione in tempo reale, pertanto la modifica dell'oggetto restituito non aggiorna il valore nel property store. Per aggiornare i dati nello Store, salvali di nuovo:

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

Eliminazione dei dati

Per eliminare un singolo valore, chiama 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);
}

Per eliminare tutte le proprietà nello store corrente, chiama 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);
}

Gestire manualmente le proprietà script

Puoi aggiungere manualmente fino a cinquanta proprietà personalizzate, come stringhe in coppie chiave/valore, dalla pagina delle impostazioni del progetto. Per aggiungere più di cinquanta proprietà, devi aggiungerle in modo programmatico utilizzando i metodi descritti sopra in Salvataggio dei dati. Quando imposti le proprietà dello script dalla pagina delle impostazioni del progetto, non puoi fare riferimento alle variabili dello script.

Aggiungere proprietà script

  1. Apri il progetto Apps Script.
  2. A sinistra, fai clic su Impostazioni progetto L'icona per le impostazioni del progetto.
  3. Per aggiungere la prima proprietà, fai clic su Aggiungi proprietà script in Proprietà script.
  4. Per aggiungere la seconda proprietà e quelle successive, fai clic su Modifica proprietà script > Aggiungi proprietà script in Proprietà script.
  5. In Proprietà, inserisci il nome della chiave.
  6. In Valore, inserisci il valore della chiave.
  7. (Facoltativo) Per aggiungere altre proprietà, fai clic su Aggiungi proprietà script.
  8. Fai clic su Salva proprietà script.

Modificare le proprietà dello script

  1. Apri il progetto Apps Script.
  2. A sinistra, fai clic su Impostazioni progetto L'icona per le impostazioni del progetto.
  3. In Proprietà script, fai clic su Modifica proprietà script.
  4. Apporta modifiche al nome e al valore della chiave per ogni proprietà che vuoi modificare.
  5. Fai clic su Salva proprietà script.

Eliminare le proprietà script

  1. Apri il progetto Apps Script.
  2. A sinistra, fai clic su Impostazioni progetto L'icona per le impostazioni del progetto.
  3. In Proprietà script, fai clic su Modifica proprietà script.
  4. Accanto alla proprietà che vuoi eliminare, fai clic su Rimuovi .
  5. Fai clic su Salva proprietà script.