API de autenticação Fastmarkets
Table of Contents
API de autenticação Fastmarkets
Todas as APIs da Fastmarkets utilizam padrões modernos e amplamente reconhecidos de segurança. Isso inclui o uso de OAuth 2.0, OpenID Connect e JSON Web Tokens (JWT).
Os clientes que consomem dados da Fastmarkets normalmente possuem seus próprios serviços que acessam e processam essas informações. Por esse motivo, a autenticação baseada nas credenciais de um único usuário não é apropriada. Em vez disso, a Fastmarkets fornece uma "Service Key" e um "Service Name" exclusivos para cada cliente. Esses dados são usados para chamar a Fastmarkets "Authentication API" e gerar um "Access Token".
O "Access Token" retornado (no formato de um JSON Web Token) é obrigatório para todas as chamadas subsequentes às demais APIs Fastmarkets — por exemplo, a Fastmarkets Physical Prices API — garantindo que o serviço solicitante tem permissão para acessar os dados requisitados.
Geração de um token de acesso
Usando a "Service Key" e o "Service Name" fornecidos, é necessário enviar uma requisição POST Connect Token para a Fastmarkets Authentication API, conforme descrito no exemplo abaixo.
A resposta inclui o "Access Token", o tempo de expiração (em segundos) e o tipo de "Access Token" (sempre será "Bearer").
Exemplo de solicitação:
import requests # use requests library
import json # use json library
url = "https://auth.fastmarkets.com/connect/token"
payload = {
'grant_type': 'servicekey',
'client_id': 'service_client',
'scope': 'fastmarkets.physicalprices.api',
'serviceName': 'service_name',
'serviceKey': 'service_key'
}
header = {'Content-Type': "application/x-www-form-urlencoded"}
token_response = requests.post(url, data = payload, headers = header)
accessToken = json.loads(token_response.content)Onde service_name e service_key deve ser substituído por suas credenciais "Service Name" e "Service Key", respectivamente.
Exemplo de resposta:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjdjZTkyOTQ4NDk0ODRkMDM4YzQ0N...eEJkMWKgeY4vumE1RY-h4pC1CT6w",
"expires_in":7200,
"token_type":"Bearer"
}Observe que o "Access Token" expira. O tempo de expiração é informado na resposta. Isso é intencional. Dependendo das necessidades do sistema, um novo "Access Token" precisará ser gerado em uma ou mais das seguintes situações:
1. Antes de cada requisição a uma API que exige um "Access Token" (como a Physical Prices API) - Isso pode ser ineficiente se você fizer solicitações frequentes, mas é adequado para processos "stateless".
2. Quando o "Access Token" atual estiver próximo da expiração – O valor “expires_in”, retornado pela requisição ao Connect Token, informa o período de expiração em segundos. Alternativamente, decodificar o próprio JSON Web Token (JWT) revela um parâmetro “exp” contendo o timestamp exato do vencimento.
3. Ao receber uma resposta de status 401 (Não autorizado) de uma API.
Informações técnicas da API
Para saber mais sobre nossas APIs, consulte informações técnicas da API .
Ajuda adicional
Se você tiver mais perguntas ou precisar de suporte adicional, consulte todo o conteúdo de ajuda disponível em nosso Hub de suporte.
Se você não encontrar o que precisa e quiser contatar nossas equipes de suporte, então vamos ajudá-lo(a).