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ązania Internal, Compatible lub Proprietary Parent Child) mogą skontaktować się z przedstawicielem FedEx, aby uzyskać klucz API i klucz tajny.
Aby zapewnić dodatkową warstwę zabezpieczeń, klienci FedEx® (korzystający z rozwiązania Internal, Compatible lub Proprietary Parent Child) 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ązania Internal, Compatible lub w układzie nadrzędno-podrzędnym) muszą wysłać ID użytkownika podrzędnego (Child Key) i klucz tajny (Child Secret) użytkownika podrzędnego. 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ązania FedEx® Internal, Compatible lub Proprietary Parent Child 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 lub Compatible:
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.
Response