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. Ele geralmente é usado para armazenar configurações do desenvolvedor ou preferências do usuário. As propriedades nunca são compartilhadas entre 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 deles retorna 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
Normalmente usado para Dados de configuração em todo o app, como nome de usuário e 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 de propriedades 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 apropriado, como mostrado no exemplo a seguir:

serviço/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:

serviço/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 salvo anteriormente, chame Properties.getProperty(key):

serviço/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():

serviço/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, a alteração do objeto retornado não atualiza o valor no armazenamento de propriedades. Para atualizar os dados no armazenamento, basta salvá-los novamente:

serviço/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):

serviço/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():

serviço/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 cinquenta propriedades, você precisa 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 O ícone de configurações do projeto.
  3. Para adicionar a primeira propriedade, em Propriedades do script, clique em Adicionar propriedade do script.
  4. Para adicionar uma segunda propriedade e propriedades subsequentes, em Script Properties, clique em Edit script properties > Add script property.
  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 O ícone de 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 que você quer alterar.
  5. Clique em Salvar propriedades do script.

Excluir propriedades do script

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