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. |
Request Body schema: application/x-www-form-urlencoded
grant_type required | string Specify Type of customer requesting the Oauth token. |
client_id required | string Specify the Client ID also known as API Key received during FedEx Developer portal registration. |
client_secret required | string Specify the Client secret also known as Secret Key received during FedEx Developer portal registration. |
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. |
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. |
Responses
Success
Unauthorized
Failure
Service Unavailable
Sandbox Server
Production Server
Request samples
- Payload
- C#
- JAVA
- JAVASCRIPT
- PHP
- PYTHON
- RUST
- SWIFT
grant_type=client_credentials&client_id=Your_client_ID&client_secret=Your_secret
Response samples
- 200
- 401
- 500
- 503
- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……",
- "token_type": "bearer",
- "expires_in": 3600,
- "scope": "CXS"
Response