Os serviços avançados do Apps Script permitem que desenvolvedores experientes se conectem a determinadas APIs públicas do Google com menos configuração do que usando as interfaces HTTP. Os serviços avançados são essencialmente wrappers simples dessas APIs do Google. Eles funcionam de maneira semelhante aos serviços integrados do Apps Script. Por exemplo, eles oferecem preenchimento automático, e o Apps Script processa o fluxo de autorização automaticamente. No entanto, é necessário ativar um serviço avançado antes de usá-lo em um script.
Para saber quais APIs do Google estão disponíveis como serviços avançados, procure a seção Serviços avançados do Google na Referência. Se você quiser usar uma API do Google que não está disponível como um serviço avançado, basta se conectar a ela como qualquer outra API externa.
Serviços avançados ou HTTP?
Cada um dos serviços avançados do Google está associado a uma API pública do Google.
No Apps Script, é possível acessar essas APIs por serviços avançados ou simplesmente
fazendo as solicitações de API diretamente usando
UrlFetch
.
Se você usar o método de serviço avançado, o Apps Script processará o fluxo de autorização e oferecerá suporte ao preenchimento automático. No entanto, você precisa ativar o serviço avançado para poder usá-lo. Além disso, alguns serviços avançados fornecem apenas um subconjunto das funcionalidades disponíveis na API.
Se você usar o método UrlFetch
para acessar a API diretamente, basicamente tratará a API do Google como uma
API externa. Com esse método, todos
os aspectos da API podem ser usados. No entanto, você precisa processar a autorização da API
por conta própria. Você também precisa criar todos os cabeçalhos necessários e analisar
as respostas da API.
Em geral, é mais fácil usar um serviço avançado sempre que possível e usar o método UrlFetch
apenas quando o serviço avançado não oferece a funcionalidade necessária.
Requisitos
Para usar um serviço avançado, você precisa atender aos seguintes requisitos:
- É necessário ativar o serviço avançado no projeto de script.
Verifique se a API correspondente ao serviço avançado está ativada no projeto do Cloud Platform (GCP) usado pelo script.
Se o projeto de script usar um projeto padrão do GCP criado em ou após 8 de abril de 2019, a API será ativada automaticamente depois que você ativar o serviço avançado e salvar o projeto de script. Se você ainda não tiver feito isso, talvez seja necessário concordar com os Termos de Serviço do Google Cloud e das APIs do Google.
Se o projeto do script usar um projeto padrão do GCP ou um projeto padrão mais antigo do GCP, ative manualmente a API correspondente do serviço avançado no projeto do GCP. É necessário ter acesso de edição ao projeto do GCP para fazer essa mudança.
Consulte Projetos do Cloud Platform para mais informações.
Ativar serviços avançados
Para usar um serviço avançado do Google, siga estas instruções:
- Abra o projeto do Apps Script.
- À esquerda, clique em Editor .
- À esquerda, ao lado de Serviços, clique em Adicionar um serviço .
- Selecione um serviço avançado do Google e clique em Adicionar.
Depois que você ativar um serviço avançado, ele vai estar disponível no preenchimento automático.
Como as assinaturas dos métodos são determinadas
Os serviços avançados geralmente usam os mesmos objetos, nomes de método e parâmetros que as APIs públicas correspondentes, embora as assinaturas de método sejam traduzidas para uso no Apps Script. A função de preenchimento automático do editor de script geralmente fornece informações suficientes para começar, mas as regras abaixo explicam como o Apps Script gera uma assinatura de método de uma API pública do Google.
As solicitações às APIs do Google podem aceitar vários tipos diferentes de dados, incluindo parâmetros de caminho, de consulta, um corpo de solicitação e/ou um anexo de upload de mídia. Alguns serviços avançados também podem aceitar cabeçalhos de solicitação HTTP específicos, por exemplo, o serviço avançado do Agenda.
A assinatura do método correspondente no Google Apps Script tem os seguintes argumentos:
- O corpo da solicitação (geralmente um recurso) como um objeto JavaScript.
- Caminho ou parâmetros obrigatórios, como argumentos individuais.
- O anexo de upload de mídia, como um argumento
Blob
. - Parâmetros opcionais, como um objeto JavaScript que mapeia nomes de parâmetros para valores.
- Cabeçalhos de solicitação HTTP, como um objeto JavaScript que mapeia nomes de cabeçalhos para valores de cabeçalho.
Se o método não tiver itens em uma determinada categoria, essa parte da assinatura será omitida.
Há algumas exceções especiais:
- Para métodos que aceitam um upload de mídia, o parâmetro
uploadType
é definido automaticamente. - Os métodos com o nome
delete
na API do Google são chamados deremove
no Apps Script, já quedelete
é uma palavra reservada no JavaScript. - Se um serviço avançado estiver configurado para aceitar cabeçalhos de solicitação HTTP e você definir um objeto JavaScript de cabeçalhos de solicitação, também será necessário definir o objeto JavaScript de parâmetros opcionais (em um objeto vazio se você não estiver usando parâmetros opcionais).
Suporte para serviços avançados
Os serviços avançados são apenas wrappers simples que permitem o uso de uma API do Google no Apps Script. Assim, qualquer problema encontrado durante o uso geralmente é um problema com a API subjacente, não com o Apps Script.
Se você encontrar um problema ao usar um serviço avançado, ele precisará ser informado usando as instruções de suporte da API. Os links para essas instruções de suporte são fornecidos em cada guia de serviço avançado na seção Referência do Apps Script.