Serviço de propriedades

Com o serviço de propriedades, você armazena dados simples em pares de chave-valor com escopo para um script, um usuário de um script, ou um documento em que um complemento é usado. É geralmente são usados para armazenar a configuração do desenvolvedor ou as preferências do usuário. Propriedades nunca são compartilhados entre os scripts.

Para visualizar as cotas diárias e os limites de armazenamento do serviço Properties, consulte Cotas para Serviços do Google.

Comparação de lojas de propriedades

A PropertiesService objeto global oferece três métodos, cada um retornando um resultado Properties mas com direitos de acesso diferentes, conforme mostrado na tabela a seguir:

Propriedades do script Propriedades do usuário Propriedades do documento
Método de acesso getScriptProperties() getUserProperties() getDocumentProperties()
Dados compartilhados entre Todos os usuários de um script, complemento ou app da Web O usuário atual de um script, complemento ou aplicativo da Web Todos os usuários de um complemento no documento aberto
Usada normalmente para Dados de configuração do app, como nome de usuário e senha da banco de dados externo do desenvolvedor Configurações específicas do usuário, como unidades métricas ou imperiais Dados específicos do documento, como o URL de origem de um gráfico incorporado

Formato de dados

O serviço de propriedades armazena todos os dados como strings em pares de chave-valor. Tipos de dados que ainda não são strings são convertidos automaticamente em strings, incluindo contidos em objetos salvos.

Economia de dados

Para salvar um único valor, chame o método Properties.setProperty(key, value). da loja apropriada, como mostrado no exemplo a seguir:

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

Para salvar dados em massa, transmita um mapa de pares de chave-valor para Properties.setProperties(properties) Cada par de chave-valor do objeto no parâmetro é armazenado como um :

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

Como ler dados

Para recuperar um único valor que você salvou anteriormente, chame 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);
}

Para recuperar todos os valores no armazenamento de propriedades atual, chame 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);
}

Como modificar dados

Os métodos getProperty() e getProperties() retornam uma cópia dos arquivos dados, não uma visualização ao vivo, portanto a alteração do objeto retornado não atualizará o valor no armazenamento de propriedades. Para atualizar os dados na loja, basta salvá-los novamente:

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

Exclusão de dados

Para excluir um único valor, chame 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);
}

Para excluir todas as propriedades na loja atual, chame 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);
}

Gerenciar propriedades do script manualmente

É possível adicionar manualmente até cinquenta propriedades personalizadas, como strings no valor-chave na página de configurações do projeto. Para adicionar mais de cinquenta propriedades, precisar adicioná-los de maneira programática usando os métodos descritos acima em Salvando dados. Ao definir as propriedades do script na página de configurações do projeto, não é possível variáveis de script de referência.

Adicionar propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Configurações do projeto O ícone das configurações do projeto.
  3. Para adicionar a primeira propriedade, em Propriedades do script, clique em Adicionar propriedade de script.
  4. Para adicionar propriedades segunda e subsequentes, em Propriedades do script, clique em Editar as propriedades do script > Adicionar propriedade do script.
  5. Em Propriedade, insira o nome da chave.
  6. Em Valor, insira o valor da chave.
  7. (Opcional) Para adicionar mais propriedades, clique em Adicionar propriedade de script.
  8. Clique em Salvar propriedades do script.

Editar propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Configurações do projeto O ícone das configurações do projeto.
  3. Em Propriedades do script, clique em Editar propriedades do script.
  4. Faça alterações no nome e no valor da chave de cada propriedade.
  5. Clique em Salvar propriedades do script.

Excluir propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Configurações do projeto O ícone das configurações do projeto.
  3. Em Propriedades do script, clique em Editar propriedades do script.
  4. Ao lado da propriedade que você quer excluir, clique em Remover .
  5. Clique em Salvar propriedades do script.