Os usuários precisam autorizar complementos e outros aplicativos que acessam os dados deles ou agem em nome deles. Quando um usuário executa um complemento pela primeira vez, a interface dele apresenta uma solicitação de autorização para iniciar o fluxo de autorização.
Durante esse fluxo, a solicitação informa ao usuário o que o aplicativo quer permissão para fazer. Por exemplo, um complemento pode querer permissão para ler a mensagem de e-mail de um usuário ou criar eventos na agenda dele. O projeto de script do complemento define essas permissões individuais como escopos do OAuth.
Os escopos são declarados no manifesto usando strings de URL. Durante o fluxo de autorização, o Apps Script apresenta uma
descrição legível do escopo para o usuário. Por exemplo, seu complemento do Google Workspace
pode usar o escopo "Ler mensagem atual", que é escrito no manifesto como
https://www.googleapis.com/auth/gmail.addons.current.message.readonly. Durante
o fluxo de autorização, um complemento com esse escopo pede
ao usuário para permitir que ele: Veja suas mensagens de e-mail
quando o complemento está sendo executado.
Os escopos que o Apps Script usa para os vários serviços dele se sobrepõem aos escopos usados pela API relacionada. Por exemplo, o serviço Calendar do Apps Script usa muitos dos mesmos escopos da API Calendar. Você pode consultar os escopos necessários para métodos específicos do serviço do Apps Script na documentação de referência do Apps Script.
Ver escopos
Para conferir os escopos que seu projeto de script exige no momento, faça o seguinte:
- Abra o projeto de script.
- À esquerda, clique em Visão geral .
- Confira os escopos em "Escopos OAuth do projeto".
Também é possível conferir os escopos atuais do projeto de script no manifesto do projeto,
no campo oauthScopes, mas apenas se você tiver definido esses escopos explicitamente.
Definir escopos explícitos
O Apps Script determina automaticamente quais escopos um script precisa ao verificar o código em busca de chamadas de função que os exigem. Para a maioria dos scripts, isso é suficiente e economiza tempo, mas para complementos publicados, é recomendável exercer um controle mais direto dos escopos.
Por exemplo, o Apps Script pode dar a um projeto de script de complemento o escopo muito permissivo https://mail.google.com por padrão. Quando um usuário autoriza um projeto de script
com esse escopo, o projeto recebe acesso total à conta
do Gmail do usuário. Para complementos publicados, você precisa
substituir esse escopo por um conjunto mais limitado que cubra as
necessidades dos complementos e nada mais.
É possível definir explicitamente os escopos usados pelo projeto de script editando o arquivo manifesto. O campo do manifesto
oauthScopes é uma matriz
de todos os escopos usados pelo complemento. Para definir os escopos do projeto, faça o seguinte:
- Confira os escopos usados pelo complemento. Determine quais mudanças precisam ser feitas, como usar um escopo mais restrito.
- Abra o arquivo de manifesto do complemento.
- Localize o campo de nível superior chamado
oauthScopes. Se ele não estiver presente, adicione-o. O campo
oauthScopesespecifica uma matriz de strings. Para definir os escopos que seu projeto usa, substitua o conteúdo dessa matriz pelos escopos que você quer que ele use. Por exemplo, para um complemento do Google Workspace que estende o Gmail, você pode ter o seguinte:{ ... "oauthScopes": [ "https://www.googleapis.com/auth/gmail.addons.current.message.metadata", "https://www.googleapis.com/auth/userinfo.email" ], ... }Salve as mudanças no arquivo de manifesto.
Verificação do OAuth
O uso de determinados escopos OAuth sensíveis pode exigir que seu complemento passe pela verificação do cliente OAuth antes da publicação. Para mais informações, consulte estes guias:
- Verificação de cliente OAuth para o Apps Script
- Apps não verificados
- Perguntas frequentes sobre a verificação do OAuth
- Serviços de APIs do Google: Política de dados do usuário
Escopos restritos
Alguns escopos são restritos e estão sujeitos a regras adicionais que ajudam a proteger os dados do usuário. Se você pretende publicar um complemento do Gmail ou do Editor que usa um ou mais escopos restritos, ele precisa obedecer a todas as restrições especificadas antes de ser publicado.
Confira a lista completa de escopos restritos antes de tentar publicar. Se o complemento usar alguma delas, você precisará obedecer aos Outros requisitos para escopos específicos de API antes da publicação.
A extensão Ferramentas para desenvolvedores do Google Workspace para Visual Studio Code fornece informações de diagnóstico para todos os escopos, incluindo a descrição e se ele é sensível ou restrito.
Escolher escopos para complementos do Google Workspace
As seções a seguir fornecem escopos usados com frequência para complementos do Google Workspace.
Escopos do editor
Os escopos a seguir, usados com frequência em complementos do Google Workspace, estendem o Google Docs, o Google Sheets e o Google Slides.
| Escopo | |
|---|---|
| Acesso atual aos arquivos do Google Docs |
https://www.googleapis.com/auth/documents.currentonly
Necessário se o complemento acessar a API Google Apps Script Docs. Concede acesso temporário ao conteúdo do documento aberto. |
| Acesso ao arquivo das Planilhas Google atual |
https://www.googleapis.com/auth/spreadsheets.currentonly
Obrigatório se o complemento acessar a API Apps Script Sheets. Concede acesso temporário ao conteúdo da planilha aberta. |
| Acesso atual aos arquivos do Apresentações |
https://www.googleapis.com/auth/presentations.currentonly
Obrigatório se o complemento acessar a API Apps Script Slides. Concede acesso temporário ao conteúdo da apresentação aberta. |
| Acesso por arquivo |
https://www.googleapis.com/auth/drive.file
Necessário para que o complemento use
|
Gmail
Há escopos criados especificamente para complementos do Google Workspace que ajudam a proteger os dados do Gmail dos usuários. Adicione esses escopos explicitamente ao manifesto do complemento, junto com outros necessários.
A tabela a seguir lista os escopos usados com frequência para complementos do Google Workspace que estendem o Gmail. Se o complemento estender o Gmail, adicione todos os escopos marcados como Obrigatório ao manifesto do complemento do Google Workspace.
Substitua o escopo amplo https://mail.google.com por um conjunto mais restrito de escopos que permitam as interações necessárias para o complemento.
| Escopo | |
|---|---|
| Criar novos rascunhos |
https://www.googleapis.com/auth/gmail.addons.current.action.compose
Obrigatório se o complemento usar gatilhos de ação de composição. Permite que o complemento crie temporariamente novas mensagens de rascunho e respostas. Consulte Como escrever mensagens em rascunho para mais detalhes. Esse escopo é usado com frequência com [ações de escrita] (/workspace/add-ons/gmail/extending-compose-ui). Requer um token de acesso. |
| Ler metadados de mensagens abertas |
https://www.googleapis.com/auth/gmail.addons.current.message.metadata
Concede acesso temporário aos metadados da mensagem aberta, como assunto ou destinatários. Não permite a leitura do conteúdo da mensagem e exige um token de acesso. Obrigatório se o complemento usar metadados em gatilhos de ação de composição. Para ações de composição, esse escopo é necessário se um gatilho de composição precisar acessar metadados. Na prática, esse escopo permite que um gatilho de composição acesse listas de destinatários (para:, cc: e cco:) de um rascunho de e-mail de resposta. |
| Ler o conteúdo de mensagens abertas |
https://www.googleapis.com/auth/gmail.addons.current.message.action
Concede acesso ao conteúdo da mensagem aberta após a interação do usuário, como ao selecionar um item de menu de complemento. Requer um token de acesso. |
| Ler o conteúdo de uma conversa aberta |
https://www.googleapis.com/auth/gmail.addons.current.message.readonly
Concede acesso temporário aos metadados e ao conteúdo da mensagem aberta. Também concede acesso ao conteúdo de outras mensagens na conversa aberta. Requer um token de acesso. |
| Ler o conteúdo e os metadados de qualquer mensagem |
https://www.googleapis.com/auth/gmail.readonly
Ler metadados e conteúdo de e-mails, incluindo a mensagem aberta. Necessário se você precisar ler informações sobre outras mensagens, como ao fazer uma consulta de pesquisa ou ler uma conversa por e-mail inteira. |
Escopos do Google Agenda
A tabela a seguir lista os escopos usados com frequência para complementos do Google Workspace que estendem o Google Agenda.
| Escopo | |
|---|---|
| Acessar metadados de eventos |
https://www.googleapis.com/auth/calendar.addons.execute
Necessário se o complemento acessar metadados de eventos do Google Agenda. Permite que o complemento acesse metadados de eventos. |
| Ler dados de eventos gerados pelo usuário |
https://www.googleapis.com/auth/calendar.addons.current.event.read
Obrigatório se o complemento precisar ler
dados de eventos gerados pelo usuário. Permite que o complemento acesse dados de eventos gerados pelo usuário.
Esses dados só estão disponíveis se o
campo de manifesto |
| Gravar dados de eventos gerados pelo usuário |
https://www.googleapis.com/auth/calendar.addons.current.event.write
Obrigatório se o complemento precisar gravar
dados de eventos gerados pelo usuário. Permite que o
complemento edite dados de eventos gerados pelo usuário.
Esses dados só estão disponíveis se o
campo de manifesto |
Escopos do Google Chat
Para chamar a API Google Chat, faça a autenticação como o usuário do Google Chat ou como o app do Google Chat. Cada tipo de autenticação exige escopos diferentes, e nem todos os métodos da API Chat são compatíveis com a autenticação de apps.
Para saber mais sobre escopos e tipos de autenticação do Chat, consulte a visão geral sobre autenticação e autorização da API Chat.
A tabela a seguir mostra os métodos e escopos da API Chat usados com frequência com base nos tipos de autenticação compatíveis:
| Método | Autenticação de usuário compatível | Autenticação de app compatível | Escopos de autorização compatíveis | |
|---|---|---|---|---|
| Enviar uma mensagem |
Com a autenticação do usuário:
|
|||
| Criar um espaço |
Com a autenticação do usuário:
|
|||
| Criar um espaço e adicionar participantes | — |
Com a autenticação do usuário:
|
||
| Adicionar um usuário a um espaço |
Com a autenticação do usuário:
|
|||
| Listar atividades ou eventos de um espaço do Chat | — |
Com a autenticação de usuário,
é necessário usar um escopo para cada
tipo de evento incluído na solicitação:
|
||
Escopos do Google Drive
A tabela a seguir lista os escopos usados com frequência para complementos do Google Workspace que estendem o Google Drive.
| Escopo | |
|---|---|
| Ler metadados do item selecionado |
https://www.googleapis.com/auth/drive.addons.metadata.readonly
Obrigatório se o complemento implementar uma interface contextual acionada quando o usuário seleciona itens no Drive. Permite que o complemento leia metadados limitados sobre os itens que um usuário selecionou no Google Drive. Os metadados são limitados ao ID, título, tipo MIME, URL do ícone e se o complemento tem permissão para acessar o item. |
| Acesso por arquivo |
https://www.googleapis.com/auth/drive.file
Recomendado se o complemento precisar acessar arquivos individuais do Drive. Concede acesso por arquivo aos arquivos criados ou abertos pelo app usando o Serviço avançado do Drive do Apps Script. Isso não permite ações semelhantes usando o serviço do Drive básico. A autorização de arquivo é concedida por arquivo e revogada quando o usuário desautoriza o app. Consulte o exemplo Solicitar acesso a arquivos selecionados. |
Tokens de acesso
Para proteger os dados do usuário, os escopos do Gmail usados nos Complementos do Google Workspace concedem acesso temporário aos dados do usuário. Para ativar o acesso temporário, chame GmailApp.setCurrentMessageAccessToken usando um token de acesso de um objeto de evento de ação.
O token de acesso que ativa os escopos do Gmail não é o mesmo retornado por ScriptApp.getOAuthToken. Use o token fornecido no objeto de evento de ação.
A seguir, mostramos um exemplo de como definir um token de acesso para permitir o acesso aos metadados de uma mensagem. O único escopo necessário para este exemplo é
https://www.googleapis.com/auth/gmail.addons.current.message.metadata.
function readSender(e) {
var accessToken = e.gmail.accessToken;
var messageId = e.gmail.messageId;
// The following function enables short-lived access to the current
// message in Gmail. Access to other Gmail messages or data isn't
// permitted.
GmailApp.setCurrentMessageAccessToken(accessToken);
var mailMessage = GmailApp.getMessageById(messageId);
return mailMessage.getFrom();
}
Outros escopos do Google Workspace
Seu complemento pode exigir outros escopos se usar outros serviços do Google Workspace ou do Apps Script. Na maioria dos casos, o Apps Script detecta esses escopos e atualiza o manifesto automaticamente. Ao editar a lista de escopos do manifesto, não remova nenhum escopo, a menos que você esteja substituindo por uma alternativa mais restrita.
A tabela a seguir mostra os escopos que os complementos do Google Workspace costumam usar:
| Escopo | |
|---|---|
| Ler o endereço de e-mail do usuário |
https://www.googleapis.com/auth/userinfo.email
Permite que o projeto leia o endereço de e-mail do usuário atual. |
| Permitir chamadas para serviços externos |
https://www.googleapis.com/auth/script.external_request
Permite que o projeto faça solicitações de
|
| Ler a localidade e o fuso horário do usuário |
https://www.googleapis.com/auth/script.locale
Permite que o projeto aprenda a localidade e o fuso horário do usuário atual. Consulte Como acessar a localidade e o fuso horário do usuário para mais detalhes. |
| Criar acionadores |
https://www.googleapis.com/auth/script.scriptapp
Permite que o projeto crie acionadores. |
| Visualizar links de terceiros |
https://www.googleapis.com/auth/workspace.linkpreview
Obrigatório se o complemento mostrar prévias de links de um serviço de terceiros. Permite que o projeto veja um link em um aplicativo do Google Workspace enquanto o usuário interage com ele. Para saber mais, consulte Visualizar links com ícones inteligentes. |
| Criar recursos de terceiros |
https://www.googleapis.com/auth/workspace.linkcreate
Obrigatório se o complemento criar recursos em um serviço de terceiros. Permite que o projeto leia as informações enviadas pelos usuários no formulário de criação de recursos e insira um link para o recurso em um aplicativo do Google Workspace. Para saber mais, consulte Criar recursos de terceiros com o menu "@". |