Serviço de propriedades

O serviço de propriedades permite armazenar 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. Normalmente, é usado para armazenar as configurações do desenvolvedor ou as preferências do usuário. As propriedades nunca são compartilhadas entre os scripts.

Para ver as cotas diárias e os limites de armazenamento do serviço de propriedades, consulte Cotas do Google Services.

Comparação de lojas de imóveis

O objeto global PropertiesService oferece três métodos, cada um retornando um objeto Properties semelhante, 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 app da Web Todos os usuários de um complemento no documento aberto
Usado normalmente para Dados de configuração em todo o app, como o nome de usuário e a senha do 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 Properties armazena todos os dados como strings em pares de chave-valor. Os tipos de dados que ainda não são strings são convertidos automaticamente em strings, incluindo métodos contidos em objetos salvos.

Economia de dados

Para salvar um único valor, chame o método Properties.setProperty(key, value) do armazenamento adequado, conforme 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 uma propriedade separada:

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 dados armazenados, não uma visualização ao vivo. Portanto, mudar o objeto retornado não vai atualizar o valor no armazenamento de propriedades. Para atualizar os dados no repositório, 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 no armazenamento 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é 50 propriedades personalizadas, como strings em pares de chave-valor, na página de configurações do projeto. Para adicionar mais de 50 propriedades, é necessário adicioná-las de maneira programática usando os métodos descritos acima em Como salvar dados. Ao definir as propriedades do script na página de configurações do projeto, não é possível fazer referência a variáveis de script.

Adicionar propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Project Settings Ícone das configurações do projeto.
  3. Para adicionar a primeira propriedade, em Propriedades do script, clique em Adicionar propriedade do script.
  4. Para adicionar a segunda e as seguintes propriedades, em Propriedades do script, clique em Editar 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 do script.
  8. Clique em Salvar propriedades do script.

Editar propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Project Settings Ícone das configurações do projeto.
  3. Em Propriedades do script, clique em Editar propriedades do script.
  4. Faça mudanças no nome e no valor da chave de cada propriedade que você quer mudar.
  5. Clique em Salvar propriedades do script.

Excluir propriedades do script

  1. Abra seu projeto do Apps Script.
  2. À esquerda, clique em Project Settings Í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.