Class ScriptApp

ScriptApp

Acessa e manipula a publicação e os gatilhos de scripts. Essa classe permite que os usuários criem gatilhos de script e controlem a publicação do script como um serviço.

Propriedades

PropriedadeTipoDescrição
AuthModeAuthModeUma enumeração que identifica quais categorias de serviços autorizados o Apps Script pode executar usando uma função acionada.
AuthorizationStatusAuthorizationStatusUma enumeração que indica o status de autorização de um script.
EventTypeEventTypeUma enumeração que indica o tipo de evento acionado.
InstallationSourceInstallationSourceUma enumeração que indica como o script foi instalado para o usuário como um complemento.
TriggerSourceTriggerSourceUma enumeração que indica a origem do evento que faz o acionador ser disparado.
WeekDayWeekdayUma enumeração que representa os dias da semana.

Métodos

MétodoTipo de retornoBreve descrição
deleteTrigger(trigger)voidRemove o gatilho especificado para que ele não seja mais executado.
getAuthorizationInfo(authMode)AuthorizationInfoRecebe um objeto que verifica se o usuário concedeu autorização para todos os requisitos do script.
getAuthorizationInfo(authMode, oAuthScopes)AuthorizationInfoRecebe um objeto que verifica se o usuário concedeu autorização para os escopos solicitados.
getIdentityToken()StringRecebe um token de identidade do OpenID Connect para o usuário efetivo, se o escopo openid tiver sido concedido.
getInstallationSource()InstallationSourceRetorna um valor de enumeração que indica como o script foi instalado como um complemento para o usuário atual. Por exemplo, se o usuário instalou pessoalmente pela Chrome Web Store ou se um administrador do domínio instalou para todos os usuários.
getOAuthToken()StringRecebe o token de acesso do OAuth 2.0 para o usuário efetivo.
getProjectTriggers()Trigger[]Recebe todos os acionadores instaláveis associados ao projeto e ao usuário atuais.
getScriptId()StringRecebe o ID exclusivo do projeto de script.
getService()ServiceRecebe um objeto usado para controlar a publicação do script como um app da Web.
getUserTriggers(document)Trigger[]Recebe todos os gatilhos instaláveis de propriedade desse usuário no documento especificado, somente para este script ou complemento.
getUserTriggers(form)Trigger[]Recebe todos os gatilhos instaláveis de propriedade deste usuário no formulário especificado, somente para este script ou complemento.
getUserTriggers(spreadsheet)Trigger[]Recebe todos os gatilhos instaláveis de propriedade desse usuário na planilha especificada, somente para este script ou complemento.
invalidateAuth()voidInvalida a autorização que o usuário efetivo tem para executar o script atual.
newStateToken()StateTokenBuilderCria um builder para um token de estado que pode ser usado em uma API de callback, como um fluxo OAuth.
newTrigger(functionName)TriggerBuilderInicia o processo de criação de um acionador instalável que, quando disparado, chama uma determinada função.
requireAllScopes(authMode)voidValida se o usuário concedeu consentimento para todos os escopos solicitados pelo script.
requireScopes(authMode, oAuthScopes)voidValida se o usuário concedeu consentimento para os escopos solicitados.

Documentação detalhada

deleteTrigger(trigger)

Remove o gatilho especificado para que ele não seja mais executado.

// Deletes all triggers in the current project. const triggers = ScriptApp.getProjectTriggers(); for (let i = 0; i < triggers.length; i++) {   ScriptApp.deleteTrigger(triggers[i]); }

Parâmetros

NomeTipoDescrição
triggerTriggerO gatilho a ser excluído.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

getAuthorizationInfo(authMode)

Recebe um objeto que verifica se o usuário concedeu autorização para todos os requisitos do script. O objeto também fornece um URL de autorização para que os usuários concedam essas permissões, caso algum dos requisitos do script não seja autorizado.

Algumas execuções de script podem começar sem o consentimento do usuário para todos os escopos necessários usados pelo script. As informações nesse objeto permitem controlar o acesso a seções de código que exigem determinados escopos e solicitam a autorização deles para execuções subsequentes.

const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();

Parâmetros

NomeTipoDescrição
authModeAuthModeO modo de autorização para o qual as informações de autorização são solicitadas. Em quase todos os casos, o valor de authMode deve ser ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL), já que nenhum outro modo de autorização exige que os usuários concedam autorização.

Retornar

AuthorizationInfo: um objeto que pode fornecer informações sobre o status de autorização do usuário.


getAuthorizationInfo(authMode, oAuthScopes)

Recebe um objeto que verifica se o usuário concedeu autorização para os escopos solicitados. O objeto também fornece um URL de autorização para que os usuários concedam essas permissões, caso algum dos escopos solicitados não esteja autorizado.

Algumas execuções de script podem começar sem o consentimento do usuário para todos os escopos necessários usados pelo script. As informações nesse objeto permitem controlar o acesso a seções de código que exigem determinados escopos e solicitam a autorização deles para execuções subsequentes. Escopos inválidos ou não obrigatórios pelo script causam um erro.

const authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL, [   'https://www.googleapis.com/auth/documents',   'https://www.googleapis.com/auth/presentations', ]); const status = authInfo.getAuthorizationStatus(); const url = authInfo.getAuthorizationUrl();

Parâmetros

NomeTipoDescrição
authModeAuthModeO modo de autorização para o qual as informações de autorização são solicitadas. Em quase todos os casos, o valor de authMode deve ser ScriptApp.AuthMode.FULL, já que nenhum outro modo de autorização exige que os usuários concedam autorização.
oAuthScopesString[]Os escopos do OAuth para os quais as informações de autorização são solicitadas.

Retornar

AuthorizationInfo: um objeto que fornece informações sobre o status de autorização do usuário e um URL de autorização caso falte algum consentimento.


getIdentityToken()

Recebe um token de identidade do OpenID Connect para o usuário efetivo, se o escopo openid tiver sido concedido. Esse escopo não é incluído por padrão. Você precisa adicioná-lo como um escopo explícito no arquivo de manifesto para solicitá-lo. Inclua os escopos https://www.googleapis.com/auth/userinfo.email ou https://www.googleapis.com/auth/userinfo.profile para retornar mais informações do usuário no token.

O token de ID retornado é um JSON Web Token (JWT) codificado, e precisa ser decodificado para extrair informações dele. Os exemplos a seguir mostram como decodificar o token e extrair o ID do perfil do Google do usuário efetivo.

const idToken = ScriptApp.getIdentityToken(); const body = idToken.split('.')[1]; const decoded = Utilities                     .newBlob(                         Utilities.base64Decode(body),                         )                     .getDataAsString(); const payload = JSON.parse(decoded);  Logger.log(`Profile ID: ${payload.sub}`);
Consulte a documentação do OpenID Connect para ver a lista completa de campos (declarações) retornados.

Retornar

String: o token de identidade, se disponível. Caso contrário, null.


getInstallationSource()

Retorna um valor de enumeração que indica como o script foi instalado como um complemento para o usuário atual. Por exemplo, se o usuário instalou pessoalmente pela Chrome Web Store ou se um administrador do domínio instalou para todos os usuários.

Retornar

InstallationSource: a origem da instalação.


getOAuthToken()

Recebe o token de acesso do OAuth 2.0 para o usuário efetivo. Se os escopos do OAuth do script forem suficientes para autorizar outra API do Google que normalmente exige um fluxo próprio do OAuth (como o Google Picker), os scripts poderão ignorar a segunda solicitação de autorização transmitindo esse token. O token expira após um tempo (alguns minutos, no mínimo). Os scripts precisam processar falhas de autorização e chamar esse método para receber um token novo quando necessário.

O token retornado por esse método inclui apenas os escopos de que o script precisa no momento. Os escopos que foram autorizados anteriormente, mas não são mais usados pelo script, não são incluídos no token retornado. Se forem necessários outros escopos do OAuth além do que o script exige, eles poderão ser especificados no arquivo de manifesto do script.

Retornar

String: uma representação de string do token do OAuth 2.0.


getProjectTriggers()

Recebe todos os acionadores instaláveis associados ao projeto e ao usuário atuais.

Logger.log(     `Current project has ${ScriptApp.getProjectTriggers().length} triggers.`, );

Retornar

Trigger[]: uma matriz dos acionadores do usuário atual associados a este projeto.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

getScriptId()

Recebe o ID exclusivo do projeto de script. Esse é o método preferido para receber o identificador exclusivo do projeto de script em vez de getProjectKey(). Esse ID pode ser usado em todos os lugares em que a chave do projeto era fornecida antes.

Retornar

String: o ID do projeto de script.


getService()

Recebe um objeto usado para controlar a publicação do script como um app da Web.

// Get the URL of the published web app. const url = ScriptApp.getService().getUrl();

Retornar

Service: um objeto usado para observar e controlar a publicação do script como um web app.


getUserTriggers(document)

Recebe todos os gatilhos instaláveis de propriedade desse usuário no documento especificado, somente para este script ou complemento. Esse método não pode ser usado para ver os gatilhos anexados a outros scripts.

const doc = DocumentApp.getActiveDocument(); const triggers = ScriptApp.getUserTriggers(doc); // Log the handler function for the first trigger in the array. Logger.log(triggers[0].getHandlerFunction());

Parâmetros

NomeTipoDescrição
documentDocumentUm arquivo do Google Docs que pode conter gatilhos instaláveis.

Retornar

Trigger[]: uma matriz de acionadores pertencentes a esse usuário no documento especificado.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(form)

Recebe todos os gatilhos instaláveis de propriedade deste usuário no formulário especificado, somente para este script ou complemento. Esse método não pode ser usado para ver os gatilhos anexados a outros scripts.

const form = FormApp.getActiveForm(); const triggers = ScriptApp.getUserTriggers(form); // Log the trigger source for the first trigger in the array. Logger.log(triggers[0].getTriggerSource());

Parâmetros

NomeTipoDescrição
formFormUm arquivo do Formulários Google que pode conter gatilhos instaláveis.

Retornar

Trigger[]: uma matriz de acionadores de propriedade desse usuário no formulário especificado.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

getUserTriggers(spreadsheet)

Recebe todos os gatilhos instaláveis de propriedade desse usuário na planilha especificada, somente para este script ou complemento. Esse método não pode ser usado para ver os gatilhos anexados a outros scripts.

const ss = SpreadsheetApp.getActiveSpreadsheet(); const triggers = ScriptApp.getUserTriggers(ss); // Log the event type for the first trigger in the array. Logger.log(triggers[0].getEventType());

Parâmetros

NomeTipoDescrição
spreadsheetSpreadsheetUm arquivo das Planilhas Google que pode conter gatilhos instaláveis.

Retornar

Trigger[]: uma matriz de acionadores pertencentes a esse usuário na planilha especificada.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

invalidateAuth()

Invalida a autorização que o usuário efetivo tem para executar o script atual. Usado para invalidar todas as permissões do script atual. Isso é especialmente útil para funções marcadas como autorização única. Como as funções de autorização única só podem ser chamadas na primeira execução depois que o script recebe autorização, se você quiser realizar uma ação depois, revogue qualquer autorização que o script tenha para que o usuário veja a caixa de diálogo de autorização novamente.

ScriptApp.invalidateAuth();

Gera

Error: quando a invalidação falha


newStateToken()

Cria um builder para um token de estado que pode ser usado em uma API de callback, como um fluxo OAuth.

// Generate a callback URL, given the name of a callback function. The script // does not need to be published as a web app; the /usercallback URL suffix // replaces /edit in any script's URL. function getCallbackURL(callbackFunction) {   // IMPORTANT: Replace string below with the URL from your script, minus the   // /edit at the end.   const scriptUrl =       'https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz';   const urlSuffix = '/usercallback?state=';   const stateToken = ScriptApp.newStateToken()                          .withMethod(callbackFunction)                          .withTimeout(120)                          .createToken();   return scriptUrl + urlSuffix + stateToken; }

Na maioria dos fluxos OAuth2, o token state é transmitido diretamente ao endpoint de autorização (não como parte do URL de callback), e o endpoint de autorização o transmite como parte do URL de callback.

Exemplo:

  • O script redireciona o usuário para o URL de autorização do OAuth2: https://accounts.google.com/o/oauth2/auth?state=token_generated_with_this_method&callback_uri=https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback&other_oauth2_parameters
  • O usuário clica em "Autorizar", e a página de autorização do OAuth2 redireciona o usuário de volta para https://script.google.com/macros/d/1234567890abcdefghijklmonpqrstuvwxyz/usercallback?state=token_generated_with_this_method&other_params_that_include_tokens_or_grants
  • O redirecionamento acima (de volta para http://script.google.com/...) faz com que a solicitação do navegador vá para /usercallback, que invoca o método especificado por StateTokenBuilder.withMethod(method).

Retornar

StateTokenBuilder: um objeto usado para continuar o processo de criação de token de estado.


newTrigger(functionName)

Inicia o processo de criação de um acionador instalável que, quando disparado, chama uma determinada função.

// Creates an edit trigger for a spreadsheet identified by ID. ScriptApp.newTrigger('myFunction')     .forSpreadsheet('1234567890abcdefghijklmnopqrstuvwxyz_a1b2c3')     .onEdit()     .create();

Antes de criar um gatilho, verifique se a função associada tem todas as permissões do OAuth necessárias.

Parâmetros

NomeTipoDescrição
functionNameStringA função a ser chamada quando o gatilho for disparado. É possível usar funções de bibliotecas incluídas, como Library.libFunction1.

Retornar

TriggerBuilder: um objeto usado para continuar o processo de criação de gatilhos.

Autorização

Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:

  • https://www.googleapis.com/auth/script.scriptapp

requireAllScopes(authMode)

Valida se o usuário concedeu consentimento para todos os escopos solicitados pelo script. Use esse método se um fluxo de execução depender de todos os escopos solicitados por um script. Se algum consentimento estiver faltando, esse método vai encerrar a execução atual e renderizar uma solicitação de autorização para pedir os consentimentos ausentes.

Esse método só funciona quando os usuários executam o script em uma plataforma que oferece suporte ao consentimento granular, por exemplo, no ambiente de desenvolvimento integrado do Apps Script. Quando o script é executado sem consentimentos em uma plataforma não compatível, como um complemento do Google Workspace, ele mostra uma solicitação de autorização no início da execução para pedir todos os escopos.

ScriptApp.requireAllScopes(ScriptApp.AuthMode.FULL);

Parâmetros

NomeTipoDescrição
authModeAuthModeO modo de autorização para o qual os escopos de script precisam ser avaliados. Em quase todos os casos, o valor de authMode deve ser ScriptApp.AuthMode.FULL, já que nenhum outro modo de autorização exige que os usuários concedam autorização.

requireScopes(authMode, oAuthScopes)

Valida se o usuário concedeu consentimento para os escopos solicitados. Use esse método se um fluxo de execução depender de um ou mais serviços. Se algum dos consentimentos especificados estiver faltando, esse método vai encerrar a execução atual e renderizar uma solicitação de autorização para pedir os consentimentos ausentes. Escopos inválidos ou não obrigatórios pelo script causam um erro.

Esse método só funciona quando os usuários executam o script em uma plataforma que oferece suporte ao consentimento granular, por exemplo, no ambiente de desenvolvimento integrado do Apps Script. Quando o script é executado sem consentimentos em uma plataforma não compatível, como um complemento do Google Workspace, ele mostra uma solicitação de autorização no início da execução para pedir todos os escopos.

ScriptApp.requireScopes(ScriptApp.AuthMode.FULL, [   'https://www.googleapis.com/auth/documents',   'https://www.googleapis.com/auth/presentations', ]);

Parâmetros

NomeTipoDescrição
authModeAuthModeO modo de autorização para o qual os escopos solicitados precisam ser avaliados. Em quase todos os casos, o valor de authMode deve ser ScriptApp.AuthMode.FULL, já que nenhum outro modo de autorização exige que os usuários concedam autorização.
oAuthScopesString[]Os escopos do OAuth necessários para concluir o fluxo de execução especificado.

Métodos obsoletos