Os usuários utilizarão seu conector da comunidade para criar as próprias fontes de dados. O conector pode acessar a identidade do usuário efetivo nessas fontes. Dependendo das credenciais da fonte de dados, o usuário em vigor pode ser o criador da fonte (credenciais do proprietário) ou o visualizador de relatórios (credenciais do visualizador).
Vantagens
- Você pode acessar os serviços e as APIs do Google em nome do usuário.
- É possível implementar o controle de acesso personalizado para garantir que apenas dados relevantes sejam exibidos.
- Você consegue personalizar a experiência para o usuário efetivo.
Etapas de implementação
Como acessar o token OAuth do usuário
Seu conector pode acessar os serviços e as APIs do Google em nome do usuário enviando o token OAuth correspondente. Para acessar o token OAuth do usuário efetivo no seu conector, utilize ScriptApp.getOAuthToken()
. Consulte a referência do getOAuthToken.
Esse token incluirá os escopos de autorização incluídos durante a autorização do conector.
Para a maioria dos conectores, o Apps Script detecta automaticamente quais escopos são necessários ao analisar e processar o script. Você pode conferir os escopos que o conector usa a qualquer momento. Também é possível definir escopos de forma explícita no seu manifesto usando strings de URL. Se você quiser acessar um serviço ou uma API do Google em nome do usuário, inclua o escopo relevante no manifesto.
Como ver o endereço de e-mail do usuário
No seu código, utilize Session.getEffectiveUser().getEmail()
para identificar o usuário efetivo atual. Consulte a referência do getEffectiveUser.
Ao adicionar esse código, o escopo de autorização https://www.googleapis.com/auth/userinfo.email
será incluído automaticamente no seu conector.
Exemplo: como chamar APIs do Google com o token OAuth do usuário
- O conector do Google Fit busca dados da API Google Fit para o usuário efetivo. Ao chamar a API, ela transmite o token OAuth desse usuário. Confira detalhes da implementação no código-fonte.
- O conector do Firestore utiliza o Cloud Resource Manager para conseguir uma lista de projetos do usuário efetivo. Esse conector também envia o token OAuth desse usuário. Confira o código-fonte para ver detalhes de implementação.
Exemplo: isAdminUser()
com base no endereço de e-mail
- O conector da UX do Chrome mantém uma lista de usuários administradores. Ele usa
getEffectiveUser()
e compara o usuário efetivo com a lista para determinar se o usuário em vigor é um administrador ou não. Consulte implementação degetEffectiveUser
.