Fedex Logo
Developer Portal

API Authorization

Wprowadzenie

Interfejsy API FedEx obsługują autoryzację żądań API aplikacji dotyczących zasobów FedEx przy użyciu metody uwierzytelniania OAuth 2.0 (token okaziciela). Token dostępu OAuth musi być ponownie generowany co 60 minut i podawany przy każdej transakcji API na potrzeby uwierzytelnienia i autoryzacji dostępu do zasobów FedEx.

Szczegóły interfejsu autoryzacji API

Ten interfejs API umożliwia autoryzowanie żądań API i jest wymagany do uwierzytelniania zasobów FedEx. Poniższa sekcja zawiera wymagania wstępne dotyczące interfejsu API:

Podczas rejestrowania w FedEx Developer Portal udostępnia kombinację identyfikatora klienta (klucza API) i klucza tajnego klienta (klucza tajnego) na potrzeby uwierzytelniania żądań API dotyczących Twojego projektu. Każdy projekt w organizacji jest powiązany z kombinacją identyfikatora klienta i klucza tajnego klienta wywoływaną jako poświadczenia API.

Uwaga: klienci (korzystający z rozwiązań Internal, Compatible, Proprietary Parent Child oraz Integrator) mogą skontaktować się z przedstawicielem FedEx, aby uzyskać klucz API i klucz tajny.

Aby zapewnić dodatkową warstwę zabezpieczeń, klienci FedEx® (korzystający z rozwiązań Internal, Compatible, Proprietary Parent Child oraz Integrator) mogą oprócz klucza API i klucza tajnego wysłać również klucz podrzędny (klucz tajny klienta) i podrzędny klucz tajny (hasło klienta) w celu utworzenia tokena OAuth. Ten token jest używany w każdym żądaniu API na potrzeby autoryzacji.

Zapomniany klucz tajny można utworzyć ponownie na stronie Projects (Projekty) w FedEx Developer Portal.

Uwaga: utworzenie nowych kluczy spowoduje zmianę kodu w aplikacji.

Ważne informacje w tym dokumencie:

  • Klucz klienta oznacza klucz API
  • Klucz tajny klienta oznacza klucz tajny
  • Klucz podrzędny oznacza klucz klienta
  • Podrzędny klucz tajny oznacza hasło klienta

Zastosowania poświadczeń API:

  • Identyfikacja projektu wywołującego API.
  • Autoryzacja dostępu do API włączonych dla projektu.

Jak uzyskać poświadczenia interfejsu API

Poświadczenia są tworzone w oparciu o dane wprowadzane w portalu FedEx Developer Portal:

  • Client ID — klucz API Key (Client ID) jest tworzony po utworzeniu projektu w FedEx Developer Portal. Klucz API powiązany z projektem możesz też wyświetlić na stronie Project Overview (Przegląd projektu).
  • Client Secret — klucz tajny (Client Secret) jest wyświetlany na stronie potwierdzenia po utworzeniu projektu w FedEx Developer Portal. W razie potrzeby możesz ponownie wygenerować klucz tajny na stronie Project Overview (Przegląd projektu).

Uwaga: klienci FedEx® (korzystający z rozwiązań Internal, Compatible, Proprietary Parent Child oraz Integrator) muszą oprócz klucza API i klucza tajnego wysłać klucz podrzędny (klucz tajny klienta) i podrzędny klucz tajny (hasło klienta) w celu utworzenia tokena OAuth. Aby dowiedzieć się, jak uzyskać klucz podrzędny i podrzędny klucz tajny, należy zapoznać się z informacjami na temat interfejsu API rejestracji poświadczeń.

Jak działa interfejs API autoryzacji

Autoryzacja w interfejsie API

Po uzyskaniu przez użytkownika poświadczeń API w FedEx Developer Portal punkt końcowy OAuth jest używany w celu uzyskania tokena dostępu, który będzie używany jako poświadczenia w przypadku każdej transakcji API.

Poniżej znajdują się wymagane informacje wejściowe powiązane z tym żądaniem OAuth:

  • grant_type — typ klienta. (prawidłowe wartości: client_credentials, csp_credentials, client_pc_credentials)
  • client_id — odwołuje się do klucza API projektu.
  • client_secret — odwołuje się do tajnego klucza API projektu.

W przypadku klientów korzystających z rozwiązań FedEx® Internal, Compatible, Proprietary Parent Child oraz Integrator należy wysłać poniższe dodatkowe informacje wejściowe:

  • child_id — klucz klienta zwrócony w wyniku żądania interfejsu API rejestracji poświadczeń.
  • child_secret — hasło klienta zwrócone w wyniku żądania interfejsu API rejestracji poświadczeń.

W wyniku tego żądania powinny zostać zwrócone następujące dane:

  • access_token — zaszyfrowany token OAuth, który musi zostać użyty w transakcji API.
  • token_type — typ tokena. W tym przypadku jest to uwierzytelnianie okaziciela.
  • expires_in — czas wygaśnięcia tokena w milisekundach. Jedna godzina to standardowy czas wygaśnięcia tokena.
  • Scope — zakres autoryzacji dla klienta.

Przykłady

Żądanie:

POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=ID_klienta&client_secret=klucz_tajny

Odpowiedź:

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Żądanie w przypadku klientów korzystających z rozwiązania FedEx® Internal, Compatible oraz Integrator:

POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=ID_klienta&client_secret=klucz_tajny_klienta&child_key=klucz_podrzędny&child_secret=podrzędny_klucz_tajny

Odpowiedź:

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Format żądania dotyczące klientów korzystających z rozwiązania FedEx® Proprietary Parent Child:

POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret

Odpowiedź:

{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}

Uwaga: token dostępu wygasa po godzinie. Może on zostać ponownie wygenerowany przy użyciu żądania POST wysłanego do punktu końcowego oauth/token.

API Authorization (1.0)

API Authorization

Use this endpoint to request the OAuth token (bearer token) to authorize your application to access FedEx resources. You can pass this bearer token in your subsequent individual FedEx API endpoint requests.
Note: FedEx APIs do not support Cross-Origin Resource Sharing (CORS) mechanism.

header Parameters
content-type
required
string
Example: application/x-www-form-urlencoded

This is used to indicate the media type of the resource. The media type is a string sent along with the file indicating format of the file.
Example: application/x-www-form-urlencoded

Request Body schema: application/x-www-form-urlencoded
grant_type
required
string

Specify Type of customer requesting the Oauth token.
Valid Values: client_credentials, csp_credentials, client_pc_credentials
Note:
client_credentials - should be used for customers, Integrators, and brand new Compatible Provider customers who are yet to unboard child accounts.
csp_credentials - should be used for Integrators, and Compatible Provider customers with existing child accounts.
client_pc_credentials – should be used for Proprietary Parent Child customers.

client_id
required
string

Specify the Client ID also known as API Key received during FedEx Developer portal registration.
Example: XXXX-XXX-XXXX-XXX

client_secret
required
string

Specify the Client secret also known as Secret Key received during FedEx Developer portal registration.
Example: XXXX-XXX-XXXX-XXX

child_Key
string

Specify the Client ID also known as Customer Key. This element is used as a login credential for an Integrator customer, Compatible customer or a Proprietary Parent Child customer to access the application on behalf of their customer.
Example: XXXX-XXX-XXXX-XXX
Note: This element should be used by Integrator, Compatible and Proprietary Parent Child customers.

child_secret
string

Specify the Client secret also known as Customer Secret. This element is used as a login credential for an Integrator customer, Compatible customer or a Proprietary Parent Child customer to access the application on behalf of their customer.
Example: XXXX-XXX-XXXX-XXX
Note: This element should be used by Integrator, Compatible and Proprietary Parent Child customers.

Responses

200

Success

401

Unauthorized

500

Failure

503

Service Unavailable

post /oauth/token

Sandbox Server

https://apis-sandbox.fedex.com/oauth/token

Production Server

https://apis.fedex.com/oauth/token

Request samples

Content type
application/x-www-form-urlencoded
Example
Copy
grant_type=client_credentials&client_id=Your_client_ID&client_secret=Your_secret

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……",
  • "token_type": "bearer",
  • "expires_in": 3600,
  • "scope": "CXS"
}
CLOSE

Response

Copy