Solução de problemas

Mesmo o desenvolvedor mais experiente raramente escreve o código corretamente na primeira tentar, tornando a solução de problemas uma parte importante do processo de desenvolvimento. Em Nesta seção, vamos abordar algumas técnicas que podem ajudar você a encontrar, entender e depurar erros nos scripts.

Mensagens de erro

Quando o script encontra um erro, uma mensagem de erro é exibida. A mensagem é acompanhado por um número de linha usado para a solução de problemas. Existem duas ferramentas tipos de erros exibidos desta maneira: erros de sintaxe e erros de tempo de execução.

Erros de sintaxe

Os erros de sintaxe são causados por códigos que não seguem o JavaScript gramática, e os erros são detectados assim que você tenta salvar o script. Por exemplo, o snippet de código a seguir contém um erro de sintaxe:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ";
  MailApp.sendEmail('john@example.com',
                    'Data in row ' + rowNumber,
                    rowData);
}

O problema de sintaxe aqui é um caractere ) ausente no final da quarta linha Ao tentar salvar o script, você recebe o seguinte erro:

Falta ) depois da lista de argumentos. (linha 4)

Esses tipos de erros geralmente são simples de solucionar, pois são encontrados imediatamente e costumam ter causas simples. Não é possível salvar um que contém erros de sintaxe, ou seja, somente códigos válidos são salvos seu projeto.

Erros de execução

Esses erros são causados pelo uso incorreto de uma função ou classe e só podem depois que o script for executado. Por exemplo, o código a seguir causa um erro de tempo de execução:

function emailDataRow(rowNumber) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var rowData = data[rowNumber-1].join(" ");
  MailApp.sendEmail('john',
                    'Data in row ' + rowNumber,
                    rowData);
}

O código está formatado corretamente, mas estamos passando o valor "john" para o endereço de e-mail ao chamar MailApp.sendEmail. Como este não é um válido. O seguinte erro será gerado ao executar o script:

E-mail inválido: joao (linha 5)

O que torna esses erros mais difíceis de solucionar é que, muitas vezes, os dados transmitida para uma função não está escrita no código, mas sim extraída de uma planilha, formulário ou outra fonte de dados externa. Como usar o método de depuração abaixo podem ajudar a identificar a causa desses erros.

Erros comuns

Veja abaixo uma lista de erros comuns e as causas deles.

Serviço invocado muitas vezes: <nome da ação>

Esse erro indica que você excedeu sua cota diária para uma determinada ação. Por exemplo, você pode encontrar esse erro se enviar muitos e-mails em um em um único dia. As cotas são definidas em níveis diferentes para consumidor, domínio e contas do Google Cloud e estão sujeitos a alterações a qualquer momento sem uma comunicado pelo Google. Você pode ver os limites de cota para várias ações no Documentação de cotas do Apps Script.

Servidor indisponível. ou Ocorreu um erro de servidor. Tente novamente.

Existem algumas causas possíveis para esses erros:

  • um servidor ou sistema do Google estiver temporariamente indisponível. Aguarde alguns instantes e tente executar o script novamente.
  • Há um erro no seu script que não tem um erro correspondente mensagem. Tente depurar o script e tente isolar o problema.
  • Há um bug no Google Apps Script que está causando esse erro. Para instruções sobre como pesquisar e registrar relatórios de bugs, consulte a Bugs: Antes de informar um novo bug, pesquise para ver se outras pessoas já informaram isso.

É necessária autorização para executar essa ação.

Esse erro indica que o script não tem a autorização necessária para ser executado. Quando um script é executado no Editor de script ou em um item de menu personalizado, um uma caixa de diálogo de autorização é apresentada ao usuário. No entanto, quando um script é executado, a partir de um acionador, incorporado a uma página do Google Sites ou executado como um serviço, o não pode ser apresentada, e esse erro é exibido.

Para autorizar o script, abra o Editor de script e execute qualquer função. A é exibido para você autorizar o projeto de script. Se o tiver novos serviços não autorizados, será necessário autorizar o script novamente.

Esse erro costuma ser causado por acionadores que estão sendo disparados antes do o usuário autorizou eles. Se você não tiver acesso ao projeto de script (porque o erro ocorre para um complemento que você uso, por exemplo), geralmente é possível autorizar o script com o complemento de novo. Se um acionador continuar a disparar e causar esse erro, você pode remover seu os acionadores da seguinte forma:

  1. À esquerda do projeto do Apps Script, clique em Gatilhos .
  2. À direita do acionador que você quer remover, clique em Mais . &gt; Excluir gatilho.

Você também pode remover acionadores problemáticos de complementos, desinstalando o complemento.

Acesso negado: DriveApp ou A política do domínio desativou aplicativos de terceiros do Drive

Os administradores de Google Workspace domínios têm o a capacidade de desativar API Drive para o domínio, que impede os usuários de instalando e usando os aplicativos do Google Drive. Essa configuração também impede que os usuários os complementos do Apps Script que utilizam a Serviço do Drive ou Serviço avançado do Drive mesmo que o script tenha sido autorizado antes de o administrador desativar a API Drive.

No entanto, se um complemento ou um app da Web que usa o serviço do Drive for publicado para instalação em todo o domínio e for instalado pelo administrador para alguns ou todos os usuários no domínio, o funções de script para esses usuários, mesmo que a API Drive esteja desativada no domínio.

O script não tem permissão para receber a identidade do usuário ativo.

Indica que a identidade e o e-mail do usuário ativo não estão disponíveis para o script. Esse aviso resulta de uma chamada para Session.getActiveUser() Isso também pode resultar de uma chamada Session.getEffectiveUser() se o script estiver sendo executado em um modo de autorização diferente de AuthMode.FULL Se esse aviso for sinalizado, as chamadas subsequentes para User.getEmail() retorna apenas "".

Há diversas maneiras de solucionar esse aviso, dependendo em que o script é executado. O modo de autorização é expostas em funções acionadas Propriedade authMode do e parâmetro de evento.

  • No AuthMode.FULL, considere usar Session.getEffectiveUser() como alternativa.
  • No AuthMode.LIMITED, verifique se o proprietário autorizou o script.
  • Em outros modos de autorização, evite chamar qualquer um dos métodos.
  • Se você for um Google Workspace cliente recentemente este aviso de um acionador instalável, verifique se o gatilho é executado como um usuário dentro da organização.

A biblioteca não existe

Se você adicionar uma biblioteca conhecida ao script, você pode receber uma mensagem de erro informando que ele está ausente, mesmo que a biblioteca esteja listada como uma dependência para seu script. Isso pode ter acontecido porque muitas pessoas estão acessando a biblioteca ao mesmo tempo. Para evitar esse erro, tente uma das seguintes soluções:

  • Copie e cole o código da biblioteca no seu script e remova a biblioteca .
  • Copie o script da biblioteca e implante-o como uma biblioteca da sua conta. Confirme para atualizar a dependência do script original para a nova biblioteca em vez da pública.

Ocorreu um erro devido a uma versão da biblioteca ou da implantação ausente. Código do erro Not_Found

Essa mensagem de erro indica uma das seguintes situações:

  • A versão implantada do script foi excluída. Para atualizar o cluster versão do script, consulte Editar uma versão implantação.
  • A versão de uma biblioteca usada pelo script foi excluída. Para verificar quais biblioteca ausente, ao lado do nome da biblioteca, clique em Mais &gt; Abrir em uma nova guia. A biblioteca que faltava emite uma mensagem de erro. Depois de encontrar a biblioteca que precisa atualizar, uma das seguintes ações:
  • O script de uma biblioteca que seu script usa inclui outro biblioteca que usa uma versão excluída. Escolha uma das seguintes opções:
    • Se você tiver acesso para editar a biblioteca que seu script usa, atualize o biblioteca secundária nesse script para uma versão existente.
    • Atualize a biblioteca para usar uma versão diferente. Consulte Atualizar um biblioteca.
    • Remova a biblioteca do projeto de script e do código. Consulte Remover uma biblioteca

Error 400: invalid_scope ao chamar a API Google Chat com o serviço avançado

Se você encontrar Error 400: invalid_scope com a mensagem de erro Some requested scopes cannot be shown, isso significa que você não especificou escopos de autorização Arquivo appsscript.json do projeto do Apps Script. Na maioria dos casos, O Apps Script determina automaticamente quais escopos são necessários, mas, ao usar o serviço avançado do Chat, adicione manualmente os escopos de autorização que o script usa para Arquivo de manifesto do projeto do Apps Script. Consulte Definição de escopos explícitos

Para resolver o erro, adicione os escopos de autorização apropriados ao arquivo appsscript.json do projeto do Apps Script como parte a matriz oauthScopes. Por exemplo, para chamar o método spaces.messages.create , adicione o seguinte:

"oauthScopes": [
  "https://www.googleapis.com/auth/chat.messages.create"
]

Depuração

Nem todos os erros fazem com que uma mensagem de erro seja exibida. Pode haver uma erro sutil em que o código está tecnicamente correto e pode ser executado, mas o os resultados não são o que você esperava. Confira algumas estratégias para lidar com esse situações e investigar mais a fundo um script que não está sendo executado o que esperar.

Logging

Na depuração, geralmente é útil registrar as informações como um projeto de script é executado. O Google Apps Script tem dois métodos para registrar informações: Serviço Cloud Logging e os serviços logger e console mais básicos integrados ao editor do Apps Script.

Consulte o Guia de geração de registros para mais detalhes.

Error Reporting

As exceções que ocorrem devido a erros de tempo de execução são automaticamente registrados usando o serviço Google Cloud Error Reporting. Esse serviço permite que você pesquisar e filtrar mensagens de exceção criadas pelo projeto de script.

Para acessar o Error Reporting, consulte Ver registros e relatórios de erros da nuvem no Console do Google Cloud Platform.

Execuções

Toda vez que você executa um script, o Apps Script registra a execução. incluindo os registros do Cloud. Esses registros podem ajudar a entender quais ações que seu script realizou.

Para visualizar as execuções de seu script no no projeto do Apps Script, à esquerda, clique em Execuções.

Verificar o status de serviço do Apps Script

Apesar de o Google Workspace ser raro, às vezes específico (como o Gmail ou o Drive) encontrar problemas temporários que podem levar à interrupção do serviço. Quando isso ocorrer, os projetos do Apps Script que interagem com esses serviços podem não funcionar como esperado.

Você pode verificar se há um serviço do Google Workspace uma interrupção visualizando Painel de status do Google Workspace. Se uma interrupção do serviço for está enfrentando no momento, aguarda a resolução ou procura ajuda adicional no Central de Ajuda do Google Workspace ou o Problemas conhecidos do Google Workspace na documentação do Google Cloud.

Usar o depurador e os pontos de interrupção

Para localizar problemas no script, execute-o no modo de depuração. Quando executado em modo de depuração, um script é pausado quando atinge um ponto de interrupção, que é a linha que você destacado em seu script que você acha que pode ter um problema. Quando um script pausa a exibição o valor de cada variável naquele momento, permitindo que você inspecione o o funcionamento interno de um script sem precisar adicionar muitos log statements.

Adicionar um ponto de interrupção

Para adicionar um ponto de interrupção, passe o mouse sobre o número da linha à qual você deseja adicionar o até o ponto de interrupção. À esquerda do número da linha, clique no círculo. Os a imagem mostra um exemplo de um ponto de interrupção adicionado a um script:

Adicionar um ponto de interrupção

Executar um script no modo de depuração

Para executar o script no modo de depuração, clique em Debug na parte de cima do editor.

Antes de o script executar a linha com o ponto de interrupção, ele pausa e exibe uma tabela de informações de depuração. Use essa tabela para inspecionar dados como o valores de parâmetros e as informações armazenadas em objetos.

Para controlar como o script é executado, na parte superior do painel do Debugger, use as opções "Step in", "Step over" e "Step out" botões. Eles permitem que você execute criar um script uma linha por vez e inspecionar como os valores mudam ao longo do tempo.

Problemas com várias Contas do Google

Se você estiver conectado a várias Contas do Google ao mesmo tempo, poderá tiver problemas para acessar seus complementos e aplicativos da Web. Login múltiplo ou fazer login em várias Contas do Google ao mesmo tempo, não é compatível com o Google Apps Script, complementos ou apps da Web.

  • Se você abrir o editor do Apps Script depois de fazer login em mais de uma conta, Solicitações do Google que você escolha a conta que quer usar.

  • Se você abrir um complemento ou um app da Web e tiver problemas com o login múltiplo, tente uma das seguintes opções: as seguintes soluções:

    • Saia de todas as Contas do Google e faça login apenas na que tiver a ou aplicativo da Web que você quer acessar.
    • Abrir uma janela anônima no Google Chrome ou uma navegação privada equivalente. e faça login na Conta do Google que tem o complemento ou app da Web que você quer acessar.

Receber ajuda

Depurar um problema usando as ferramentas e técnicas listadas acima pode resolver um uma variedade de problemas, mas pode haver questões que você pode encontrar ajuda extra para resolver. Acesse nossa página de suporte para informações sobre onde fazer perguntas e registrar bugs.