Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Become a customer
  • Contact Us
Portuguese (Brazil)
FR French
BR Portuguese (Brazil)
JP Japanese
US English (US)
CN Chinese
ES Spanish
  • Home

Abordagem de conexão com o Power BI (com exemplos de código)

Explore métodos eficazes de conexão com o Power BI com exemplos de código práticos para aprimorar suas habilidades de visualização de dados.

Written by Eleonora Lebedeva

Updated at September 23rd, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

+ More

Table of Contents

Conector web Restrições de execução do Power Query Principais restrições Melhores práticas para autenticação no Power BI Considerações de segurança: usando parâmetros do Power Query Como conectar o Power BI às APIs Fastmarkets Etapa 0: Abra o Editor do Power Query Etapa 1: Criar parâmetros do Power BI Etapa 2: Criar uma consulta de autenticação Etapa 3: Criar uma função de solicitação de API reutilizável Etapa 3: Chame a função a partir de uma consulta normal. Importante Autenticação + Consulta de Dados

Conector web

A maneira mais rápida de integrar o Power BI com a API Fastmarkets é usando o conector Web . Ele oferece suporte a APIs REST, permite cabeçalhos personalizados e funciona com o Power Query (linguagem M).

Padrão típico:

Restrições de execução do Power Query

Ao projetar a autenticação no Power BI, é importante entender como o Power Query é executado.

Principais restrições

  • O Power Query pode reavaliar as consultas várias vezes.
  • Cada tabela, função ou etapa de atualização pode desencadear a execução.
  • A atualização em segundo plano e a atualização da pré-visualização comportam-se de forma diferente.
  • As consultas não podem compartilhar estado de forma confiável, a menos que sejam explicitamente estruturadas.
 

Essas restrições podem afetar a abordagem de autenticação. Se a geração de tokens estiver incorporada diretamente em várias consultas, o Power BI poderá solicitar vários tokens involuntariamente e exceder os limites de autenticação do Fastmarkets . Isso pode causar falhas nas atualizações agendadas.

Melhores práticas para autenticação no Power BI

  • Centralizar a geração de tokens
    Crie uma única consulta responsável pela autenticação. Reutilize o token em todas as requisições da API.
    Isso garante a reutilização do token e um comportamento de atualização estável.
  • Use os parâmetros do Power BI para credenciais.
    Armazene serviceName e serviceKey como parâmetros do Power BI. Evite inserir credenciais diretamente no código em vários locais.
  • Design para expiração de tokens
    Espere falhas na atualização se o token se tornar inválido. Garanta que a lógica de autenticação seja executada pelo menos uma vez por ciclo de atualização.

Considerações de segurança: usando parâmetros do Power Query

Armazenar credenciais de acesso em parâmetros do Power Query não é a abordagem mais segura. Embora funcione, as credenciais ainda ficam armazenadas dentro do modelo do Power BI, o que pode causar problemas de segurança e acesso após a publicação do conjunto de dados no serviço do Power BI.

Para os casos de uso em que o Power BI é utilizado por pequenas equipes de analistas individuais, a abordagem baseada em parâmetros descrita neste artigo geralmente é aceitável, desde que o acesso ao conjunto de dados seja rigorosamente controlado. Certifique-se de que o acesso ao conjunto de dados seja restrito e que as credenciais sejam gerenciadas com cuidado.

Como conectar o Power BI às APIs Fastmarkets

Etapa 0: Abra o Editor do Power Query

Use o Power BI Desktop. Abra Obter Dados → Consulta em Branco.

Etapa 1: Criar parâmetros do Power BI

Crie os seguintes parâmetros do Power BI (Gerenciar Parâmetros → Novo):

Nome do parâmetro Tipo Exemplo
Nome_do_serviço_FM (FM_ServiceName) Texto metais de teste (test-metals)
FM_ServiceKey Texto K14yr7806AS/uEKO+9XzdsdLxX/5BlbI+aKg==
FM_Scope Texto fastmarkets.physicalprices.api

Etapa 2: Criar uma consulta de autenticação

Crie uma nova consulta em branco chamada

Fastmarkets _Authenticate

Power Query (M): Autenticação

let
    AuthUrl = "https://auth.fastmarkets.com/connect/token",

    Body =
        [
            grant_type  = "servicekey",
            client_id  = "service_client",
            serviceName = FM_ServiceName,
            serviceKey  = FM_ServiceKey,
            scope       = FM_Scope
        ],

    Response =
        Json.Document(
            Web.Contents(
                AuthUrl,
                [
                    Content = Text.ToBinary(Uri.BuildQueryString(Body)),
                    Headers = [#"Content-Type" = "application/x-www-form-urlencoded"]
                ]
            )
        ),

    AccessToken = Response[access_token]
in
    AccessToken

Etapa 3: Criar uma função de solicitação de API reutilizável

Crie uma consulta de função chamada:

Fastmarkets _ApiRequest

Power Query (M): função de solicitação de dados

(ApiUrl as text, Token as text, optional QueryParams as nullable record) as any =>
let
    Options =
        [
            Headers =
                [
                    Authorization = "Bearer " & Token,
                    Accept = "application/json"
                ],
            Query = if QueryParams = null then [] else QueryParams
        ],

    Response =
        Json.Document(
            Web.Contents(ApiUrl, Options)
        )
in
    Response

Etapa 3: Chame a função a partir de uma consulta normal.

Crie uma consulta de função chamada:

Fastmarkets _GetLatestPrice

Note que "None" indica o preço real avaliado, em oposição às médias calculadas. Para mais informações, consulte a documentação da API Physical Prices .

let
    Token = Fastmarkets_Authenticate,

    ApiUrl =
        "https://api.fastmarkets.com/physical/v2/Prices/None",

    Response =
        Fastmarkets_ApiRequest(
            ApiUrl,
            Token,
            [
                symbols = "MB-STE-0009,MB-STE-0014"
            ]
        ),

    Data = Response[instruments],
    Table = Table.FromRecords(Data),
    pricesTable = Table.ExpandRecordColumn(
            Table.ExpandListColumn(Table, "prices"),
            "prices",
            {"assessmentDate", "low", "high", "revision"},
            {"assessmentDate", "low", "high", "revision"}
        )

in
    pricesTable

Importante

Devido ao Firewall de Fórmulas do Power BI, os tokens de acesso não podem ser compartilhados com segurança entre consultas, mesmo como valores de texto simples. Para evitar erros de firewall, a autenticação e as solicitações de API devem ser executadas na mesma consulta. Essa é uma limitação da plataforma Power BI.

Para corrigir o erro Formula.Firewall , você precisa desativar os Níveis de Privacidade no nível do arquivo, seguindo estes passos: Arquivo → Opções → Privacidade → Ignorar Níveis de Privacidade

Isso NÃO é recomendado para conjuntos de dados publicados.

Se manter a privacidade dos níveis de acesso for crucial para você, chame todas as etapas em uma única solicitação. Tenha cuidado, pois isso duplicará a lógica de autenticação.

Se você precisa de autenticação centralizada e deseja manter as configurações do firewall, considere criar um conector personalizado do Power BI ou um proxy/serviço do lado do servidor que gerencie a autenticação.

 

Autenticação + Consulta de Dados

let
    //authentication
     AuthUrl = "https://auth.fastmarkets.com/connect/token",

    Body =
        [
            grant_type  = "servicekey",
            client_id  = "service_client",
            serviceName = FM_ServiceName,
            serviceKey  = FM_ServiceKey,
            scope       = FM_Scope
        ],

    Response =
        Json.Document(
            Web.Contents(
                AuthUrl,
                [
                    Content = Text.ToBinary(Uri.BuildQueryString(Body)),
                    Headers = [#"Content-Type" = "application/x-www-form-urlencoded"]
                ]
            )
        ),

    AccessToken = Response[access_token],

    //data request

    ApiUrl =
        "https://api.fastmarkets.com/physical/v2/Prices/None",

    Response =
        Fastmarkets_ApiRequest(
            ApiUrl,
            AccessToken,
            [
                symbols = "MB-STE-0009,MB-STE-0014"
            ]
        ),

    Data = Response[instruments],
    Table = Table.FromRecords(Data),
    pricesTable = Table.ExpandRecordColumn(
            Table.ExpandListColumn(Table, "prices"),
            "prices",
            {"assessmentDate", "low", "high", "revision"},
            {"assessmentDate", "low", "high", "revision"}
        )

in
    pricesTable

 

 

 

 

power bi conexão

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Como comparar tendências de custos e visualizações ao longo de um período mais extenso?
  • Por que a tabela de preços múltiplos não está exibindo nenhum preço?
  • Patrocínio e exposição de eventos
  • Crie um novo layout em um espaço de trabalho do MyDesk.
  • Como desinstalar o Dashboard (painel de controle)

Copyright 2026 – Fastmarkets.

Knowledge Base Software powered by Helpjuice

Expand