Pobierz token dostępu OAuth2
Wymień dane dostępowe CloudPrint API na krótkotrwały token Bearer OAuth2 w przepływie Client Credentials.
Działanie metody
Wymień dane dostępowe CloudPrint API na krótkotrwały token Bearer OAuth2 w przepływie Client Credentials.
Uwierzytelnianie
Ta metoda nie wymaga tokenu Bearer.
Żądanie
Podstawowy adres API: https://public-api.cloudprint.me/oauth/token
Parametry
Metoda nie ma parametrów ścieżki, zapytania ani dodatkowych nagłówków.
Treść żądania
Typ zawartości: application/x-www-form-urlencoded
| Nazwa | Typ | Wymagane | Opis | Ograniczenia |
|---|---|---|---|---|
grant_type | string | tak | Grant OAuth2 używany w żądaniu tokenu. | enum: client_credentials; example: "client_credentials" |
client_id | string | tak | Publiczny identyfikator z pary danych API konta. | — |
client_secret | string | tak | Sekret z danych dostępowych API; przechowuj go wyłącznie w magazynie sekretów po stronie serwera. | — |
scope | string | nie | Uprawnienia żądane dla tokenu dostępu, rozdzielone spacjami. | example: "agents:read printers:read documents:write print_jobs:write print_jobs:read" |
Przykładowe żądania
cURL
bash
curl -sS https://public-api.cloudprint.me/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=33333333-3333-4333-8333-333333333333' \
--data-urlencode 'client_secret=cpsec_...' \
--data-urlencode 'scope=agents:read printers:read documents:write print_jobs:write print_jobs:read'PHP
php
<?php
$response = file_get_contents('https://public-api.cloudprint.me/oauth/token', false, stream_context_create([
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/x-www-form-urlencoded\r\n",
'content' => http_build_query([
'grant_type' => 'client_credentials',
'client_id' => getenv('CLOUDPRINT_CLIENT_ID'),
'client_secret' => getenv('CLOUDPRINT_CLIENT_SECRET'),
'scope' => 'agents:read printers:read documents:write print_jobs:write print_jobs:read',
]),
],
]));
$token = json_decode((string) $response, true, flags: JSON_THROW_ON_ERROR)['access_token'];Odpowiedź
Status HTTP: 200 — Żądanie zostało wykonane.
Pola odpowiedzi
| Nazwa | Typ | Wymagane | Opis | Ograniczenia |
|---|---|---|---|---|
token_type | string | tak | Typ tokenu OAuth2; Public API używa Bearer. | example: "Bearer" |
expires_in | integer | tak | Czas ważności tokenu dostępu w sekundach od wydania. | example: 900 |
access_token | string | tak | Krótkotrwały token OAuth2 Bearer używany w żądaniach Public API. | example: "eyJ..." |
scope | string | tak | Uprawnienia żądane dla tokenu dostępu, rozdzielone spacjami. | example: "printers:read print_jobs:write" |
Przykładowa odpowiedź
json
{
"token_type": "Bearer",
"expires_in": 900,
"access_token": "eyJ...",
"scope": "printers:read print_jobs:write"
}Błędy
| Status HTTP | Opis |
|---|---|
400 | Sprawdź format i parametry żądania. |
401 | Brak uwierzytelnienia albo jest ono nieprawidłowe. |
429 | Przekroczono limit żądań; zastosuj Retry-After. |
500 | Wewnętrzny błąd CloudPrint. |
Wskazówki integracyjne
- Przechowuj
client_secretwyłącznie w magazynie sekretów po stronie serwera; nie przekazuj go do przeglądarki ani rozpowszechnianej aplikacji komputerowej. - Przechowuj token w pamięci podręcznej niemal do końca
expires_in, zamiast pobierać go dla każdego zadania. - Żądaj tylko uprawnień potrzebnych danej integracji.
Powiązana dokumentacja
Pobierz kontekst klienta APISprawdź, do którego konta i aplikacji API należy bieżący token oraz jakie ma uprawnienia.Uwierzytelnianie OAuth2 Client CredentialsUtwórz aplikację API CloudPrint, pobieraj krótkotrwały token i chroń dane dostępowe, nadając tylko niezbędne uprawnienia.Błędy i ponowienia CloudPrint APIObsługuj statusy HTTP, błędy maszynowe, limity, identyfikatory żądań i bezpieczne ponowienia.