Como utilizar API de relatório no Power Query (Excel/PowerBI)

Modificado em Qua, 16 Out na (o) 11:50 AM

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.


Importante: 
  • 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.

  1. Acesse o Power Query:

    • No Excel: Vá em Dados > Obter Dados > De outras fontes > Consulta nula.

  2. 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




  1. 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.

  1. Criar uma nova consulta:

    • No Power Query, clique em Nova Fonte > Consulta Nula.
    • Renomeie a consulta como desejar, por exemplo, "ConsultaRelatorioAPI".
  2. 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



  1. 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:

  1. 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.


  2. Salvar as configurações: Clique em OK para aplicar as mudanças.

  3. Clique em editar credenciais e selecione o ultimo link que aparecer na lista



  4.  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:

  1. Carregar os dados no Excel:

    • 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

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo