Objetivo
Neste tutorial, vamos ensinar como automatizar a autenticação em uma API privada que usa tokens Bearer no Power Query. Esse processo é útil para gerar relatórios automáticos sem a necessidade de inserir manualmente um novo token a cada atualização.
Pré-requisitos
- Acesso à API privada com autenticação do tipo
Bearer Token
. - Power Query no Excel ou Power BI.
- Informações de autenticação da API (username, password, client_id, client_secret, etc.)
Utilize esse artigo para obiter essas informações .
Observação: O Time de Suporte Engage não oferece suporte para configurações fora da plataforma. Este artigo serve apenas como uma orientação para auxiliá-los no consumo de nossa API através do Power Query (Excel e PowerBI). Nosso suporte está limitado ao uso das APIs, sendo que todas as configurações realizadas no Power Query (Excel e PowerBI) são de responsabilidade do cliente.
- Não é possível gerar múltiplos tokens de acesso ao mesmo tempo para um usuário. Quando um novo token é criado, todos os anteriores são automaticamente expirados. Para evitar problemas, recomendamos que o cliente agende o consumo de diferentes APIs de relatórios em horários distintos, garantindo que o token de uma tarefa não expire o de outra;
- É fundamental que sempre utilizem filtros para consulta dos relatórios;
Passo a Passo
1. Criar a Função para Obter o Token Bearer
O primeiro passo é criar uma função no Power Query que vai gerar o token Bearer automaticamente.
Acesse o Power Query:
- No Excel: Vá em Dados > Obter Dados > De outras fontes > Consulta nula.
- No Excel: Vá em Dados > Obter Dados > De outras fontes > Consulta nula.
Criar uma função de autenticação:
- No painel esquerdo, renomeie a consulta para
GetBearerToken
. - No Editor Avançado (Advanced Editor), insira o código abaixo para criar uma função que vai gerar o token.
OBS. Copie o codigo abaixo adcioane as informações nescessarias e cole conforme orientado.
let GetBearerToken = () =>
let
// URL da API de autenticação
url = "https://my.engage.bz/api/v1/auth",
// Corpo da requisição com os parâmetros de autenticação
body = Text.ToBinary(
"grant_type=password" &
"&username=LOGIN INTEGRAÇÃO" &
"&password=SENHA INTEGRAÇÃO" &
"&client_id=SEU_CLIENT_ID" &
"&client_secret=SEU_CLIENT_SECRET" &
"&customer_id=SEU_CUSTOMER_ID"
),
// Configurações da requisição
options = [
Headers = [#"Content-Type" = "application/x-www-form-urlencoded"],
Content = body
],
// Enviar a requisição e capturar a resposta
response = Json.Document(Web.Contents(url, options)),
// Extrair o token
token = response[access_token]
in
token
in
GetBearerToken
- No painel esquerdo, renomeie a consulta para
- Salvar a função: Clique em Concluido. Agora, o Power Query tem uma função que pode gerar o token Bearer sempre que for chamada.
2. Criar a Consulta para Buscar os Dados
Agora que temos a função que gera o token, vamos usá-la para acessar os dados da API.
Criar uma nova consulta:
- No Power Query, clique em Nova Fonte > Consulta Nula.
- Renomeie a consulta como desejar, por exemplo, "ConsultaRelatorioAPI".
Adicionar a chamada à API com o Token:
- No Editor Avançado, substitua o código pela consulta que acessa a API utilizando o token Bearer gerado pela função
GetBearerToken
.
Utilize esse artigo para saber como obiter o endpoint
End point de reaotrio: https://my.engage.bz/api/v1/ID Da INstancia/reports/legacy/ID do relatório/ID do usuario/json
OBS. Copie o codigo abaixo adcioane as informações nescessarias e cole conforme orientado.
let // Obter o token
token = GetBearerToken(),
// Fazer a requisição à API com o token Bearer no cabeçalho
source = Json.Document(Web.Contents("https://my.engage.bz/api/v1/ID Da INstancia/reports/legacy/ID do relaotrio/ID do usuario/json",
[
Headers = [#"Authorization" = "Bearer " & token]
]
))
in
source
- No Editor Avançado, substitua o código pela consulta que acessa a API utilizando o token Bearer gerado pela função
- Testar a consulta:
- Clique em Concluir para executar a consulta e garantir que os dados da API sejam retornados corretamente.
3. Ajustar o Nível de Privacidade
Para evitar o erro Formula.Firewall
, é necessário ajustar o nível de privacidade das fontes de dados:
Alterar o Nível de Privacidade:
- No Power Query, vá em Arquivo > Opções e Configurações > Opções.
- No menu à esquerda, selecione Nível de Privacidade.
- Marque a opção Ignorar Níveis de Privacidade.
- No Power Query, vá em Arquivo > Opções e Configurações > Opções.
Salvar as configurações: Clique em OK para aplicar as mudanças.
Clique em editar credenciais e selecione o ultimo link que aparecer na lista
Para ajustar os dados, clique como botão direito sobre a Coluna Lista > Para Tabela não altere nenhuma informação e clique em OK
Nessa tela não altere nenhuma informação e clique em OK
Clique nesse botão para inverter as células por colunas, desmarca a opção de "Use o nome da coluna original como prefixo" Clique em OK
4. Carregar os Dados
Depois de configurar tudo corretamente:
Carregar os dados no Excel:
- No Power Query, clique em Fechar e Carregar para retornar os dados à planilha.
- No Power Query, clique em Fechar e Carregar para retornar os dados à planilha.
Conclusão
Com esse tutorial, você configurou o Power Query para gerar automaticamente tokens Bearer e buscar os dados da API sem intervenção manual. Agora, seus relatórios podem ser atualizados automaticamente, poupando tempo e esforço.
Se precisar de mais ajuda, entre em contato!
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo