Introdução
As APIs da FedEx são compatíveis com o método de autenticação OAuth 2.0 (token do titular) para autorizar as solicitações da API do seu aplicativo com recursos da FedEx. Esse token de acesso OAuth precisa ser gerado a cada 60 minutos e fornecido com cada transação de API para autenticar e autorizar seu acesso aos recursos da FedEx.
Detalhes da API de autorização
Essa API permite que você autorize as solicitações da API e é necessária para autenticar os recursos FedEx. A seção a seguir descreve os pré-requisitos para a API:
Ao se registrar no portal FedEx Developer, a FedEx oferece uma combinação de ID do cliente (chave API) e segredo do cliente (chave secreta) para autenticar as solicitações da API para seu projeto. Cada projeto na sua organização está associado a uma combinação de ID do cliente e segredo do cliente, chamadas de credenciais da API.
Observação: os clientes (internos, compatíveis ou de relação primária/secundária) podem entrar em contato com um representante da FedEx para obter a chave da API e a chave secreta.
Para oferecer uma camada de segurança adicional, os clientes da FedEx® (internos, compatíveis ou de relação primária/secundária) podem enviar uma chave secundária (segredo do cliente) e um segredo secundário (senha do cliente), além da chave da API e da chave secreta, para criar um token OAuth. Esse token é usado em todas as solicitações de API para autenticação.
Você pode recriar a chave secreta esquecida na página de projetos no portal FedEx Developer.
Nota: criar novas chaves vai causar uma alteração de código no seu aplicativo.
Informações importantes neste documento:
- Chave do cliente como chave da API
- Segredo do cliente como chave secreta
- Chave secundária como chave do cliente
- Segredo do cliente como senha do cliente
As credenciais da API servem para os seguintes fins:
- Identificam o projeto fazendo uma chamada para as APIs.
- Autorizam o acesso às APIs habilitadas no projeto.
Como obter as credenciais da API
As credenciais são criadas com base em entradas feitas no FedEx Developer Portal:
- ID do cliente: a chave da API (ID do cliente) é criada assim que um projeto é criado no FedEx Developer Portal. Também é possível ver a chave da API associada ao projeto na página de visão geral do projeto.
- Segredo do cliente: você verá a chave secreta (segredo do cliente) na página de confirmação assim que um projeto for criado no FedEx Developer Portal. Se for necessário, também será possível gerar a chave secreta novamente na página de visão geral do projeto.
Observação: clientes da FedEx® (internos, compatíveis ou de relação primária/secundária) precisam enviar a chave secundária (segredo do cliente) e o segredo secundário (senha do cliente) além da chave da API e chave secreta para criar um token OAuth. Consulte a API de registro de credenciais para saber como obter a chave secundária e o segredo secundário.
Como a API de autorização funciona
Autorização da API
Depois que você proteger as credenciais da API no FedEx Developer Portal, o endpoint OAuth é usado para obter um token de acesso que serve como a credencial em cada transação da API.
As informações de entrada obrigatória para a solicitação OAuth são:
- grant_type – tipo de cliente. (Valores válidos: client_credentials, csp_credentials, client_pc_credentials)
- client_id – referente à chave API do projeto.
- client_secret – referente à chave secreta da API do projeto.
Para clientes FedEx® (internos, compatíveis ou de relação primária/secundária), envie as entradas adicionais abaixo:
- child_id – Chave do cliente recebida por meio da solicitação de registro de credencial da API.
- child_secret – Senha do cliente recebida por meio da solicitação de registro de credencial da API
O resultado dessa solicitação deve enviar o seguinte:
- access_token – o token OAuth criptografado a ser usado na transação da API.
- token_type – tipo de token. Nesse caso, é autenticação do portador.
- expires_in – o tempo de expiração do token em milissegundos. O tempo padrão de expiração do Token é uma hora.
- Scope – escopo de autorização fornecida ao cliente.
Exemplos
Solicitação:
POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=sua ID de cliente&client_secret=seu segredo
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Solicitação para clientes internos FedEx® ou compatíveis:
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=ID do cliente&client_secret= segredo do cliente&child_key=chave secundária&child_secret=segredo secundário
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Solicitação para clientes FedEx® de relação primária/secundária:
POST/oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=ID do cliente&client_secret= segredo do cliente&child_key=chave secundária&child_secret=segredo secundário
Resposta:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
Nota: o token de acesso expira em uma hora. Ele pode ser regenerado por meio de uma solicitação POST para o endpoint OAuth/token.
Response