OAuth2-Zugriffstoken abrufen
Tauschen Sie CloudPrint-API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Bearer-Token.
Funktion dieser Methode
Tauschen Sie CloudPrint-API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Bearer-Token.
Authentifizierung
Diese Methode benötigt kein Bearer-Token.
Anfrage
Produktions-URL: https://public-api.cloudprint.me/oauth/token
Parameter
| Name | Position | Typ | Erforderlich | Beschreibung | Einschränkungen |
|---|---|---|---|---|---|
X-Request-Id | header | string | nein | Optionale Kennung zur Anfrageverfolgung; CloudPrint gibt einen sicheren Wert im Antwort-Header zurück. | maxLength: 128; example: "order-100045-attempt-1" |
Anfrageinhalt
Inhaltstyp: application/x-www-form-urlencoded
| Name | Typ | Erforderlich | Beschreibung | Einschränkungen |
|---|---|---|---|---|
grant_type | string | ja | OAuth2-Grant-Type für die Token-Anfrage. | enum: client_credentials; example: "client_credentials" |
client_id | string | ja | Öffentliche Kennung aus den API-Zugangsdaten des Kontos. | — |
client_secret | string | ja | Secret aus den API-Zugangsdaten; bewahren Sie es nur im Secret Store des Backends auf. | — |
scope | string | nein | Durch Leerzeichen getrennte Scopes für das angeforderte Zugriffstoken. | example: "agents:read printers:read documents:write print_jobs:write print_jobs:read" |
Anfragebeispiele
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'];Antwort
HTTP-Status: 200 — Anfrage erfolgreich.
Antwortfelder
| Name | Typ | Erforderlich | Beschreibung | Einschränkungen |
|---|---|---|---|---|
token_type | string | ja | OAuth2-Token-Typ; die Public API verwendet Bearer. | example: "Bearer" |
expires_in | integer | ja | Gültigkeitsdauer des Zugriffstokens in Sekunden ab Ausstellung. | example: 900 |
access_token | string | ja | Kurzlebiges OAuth2-Bearer-Token für Anfragen an die Public API. | example: "eyJ..." |
scope | string | ja | Durch Leerzeichen getrennte Scopes für das angeforderte Zugriffstoken. | example: "printers:read print_jobs:write" |
Beispielantwort
json
{
"token_type": "Bearer",
"expires_in": 900,
"access_token": "eyJ...",
"scope": "printers:read print_jobs:write"
}Fehler
| HTTP-Status | Beschreibung |
|---|---|
400 | Prüfen Sie Format und Parameter. |
401 | Authentifizierung fehlt oder ist ungültig. |
429 | Anfragelimit überschritten; beachten Sie Retry-After. |
500 | Interner CloudPrint-Fehler. |
Hinweise zur Integration
- Bewahren Sie
client_secretnur im Secret Store des Backends auf; senden Sie es nie an den Browser und binden Sie es nicht in ausgelieferte Desktop-Anwendungen ein. - Speichern Sie das Token bis kurz vor
expires_in, statt es für jeden Druckauftrag neu anzufordern. - Fordern Sie nur die benötigten Scopes an.
Verwandte Dokumentation
Aktuellen API-Client-Kontext abrufenPrüfen Sie, welches CloudPrint-Konto, welche Client-Anwendung und welche Scopes das aktuelle Zugriffstoken repräsentiert.Backend authentifizierenTauschen Sie API-Zugangsdaten per Client Credentials gegen ein kurzlebiges OAuth2-Token ein.Fehler und Wiederholungen der CloudPrint APIBehandeln Sie HTTP-Statuscodes, maschinenlesbare Fehler, Anfragelimits, Anfrageverfolgung und sichere Wiederholungslogik.