Generuj token w playgroundzie
- Otwórz Integracje OAuth w konsoli i utwórz integrację z wymaganymi zakresami.
- Zapisz Client ID i sekret klienta wyświetlony po utworzeniu. Sekret jest pokazywany tylko raz; nie można odzyskać sekretu istniejącej integracji.
- Otwórz GraphQL playground i wybierz „Generuj token”. W oknie wprowadź zapisany Client ID i sekret, a następnie wybierz wyłącznie zakresy przyznane integracji.
- Wybierz „Generuj token integracji”. Token zostanie automatycznie ustawiony w edytorze, a okno zamknięte i sekret usunięty. Możesz użyć zapisanych danych do wygenerowania kolejnego tokenu po wygaśnięciu poprzedniego.
Client ID i sekret są używane wyłącznie w pamięci tej strony i wysyłane przez HTTPS do skonfigurowanego endpointu Cognito. Nie są zapisywane w URL, pamięci przeglądarki ani logach. Zamknięcie okna anuluje generowanie i usuwa sekret. Token integracji jest ograniczony do przyznanych zakresów i tożsamości integracji. Alternatywnie otwórz „Token API” w sekcji konta lewego menu portalu (na telefonie otwórz menu nawigacji) i skopiuj token ID bieżącej sesji używany do API; ma on uprawnienia zalogowanego użytkownika i nie podnosi ich. Menu pokazuje termin ważności bieżącego tokenu z JWT, a nie termin wylogowania — odświeżenie może go przedłużyć. Wygasły token nie może zostać skopiowany.
Okno danych uwierzytelniających po utworzeniu integracji pozwala skopiować Client ID i przykładowe żądanie curl. Istniejących sekretów nie można odzyskać.
Wymiana tokenu po stronie serwera
Możesz też wymienić dane uwierzytelniające na serwerze. Użyj dokładnego adresu token endpointu oraz zakresów wyświetlonych dla integracji; nigdy nie umieszczaj sekretu w aplikacji przeglądarkowej ani repozytorium.
curl -X POST "$OAUTH_TOKEN_URL" -H "Content-Type: application/x-www-form-urlencoded" --data-urlencode "grant_type=client_credentials" --data-urlencode "client_id=$CLIENT_ID" --data-urlencode "client_secret=$CLIENT_SECRET" --data-urlencode "scope=$SCOPES"
SCOPES to rozdzielona spacjami lista zakresów przyznanych tej integracji, np. smspipe/devices.read.
Odbierz access_token i użyj go jako nagłówka Authorization: Bearer ....
Przykład klienta
curl -X POST "https://api.smsport.app/graphql" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" --data '{"query":"query Workspaces($after: String) {\n workspaces(first: 20, after: $after) {\n nodes { id displayName status }\n pageInfo { hasNextPage endCursor }\n }\n}","variables":{}}'
Skopiuj id z workspaces.nodes i przejdź do instrukcji: workspace → urządzenie → SMS. Do odczytu urządzeń potrzebujesz smspipe/devices.read, do wysyłki smspipe/messages.write, a do sprawdzania statusu smspipe/messages.read. Wybierz tylko zakresy przyznane integracji.