Google is committed to advancing racial equity for Black communities. See how.

Autorisierungsreferenz

Autorisierungscode-Anfrage

Je nach Anfragetyp implementieren wir unterschiedliche Codelängen und TTL (Time-to-Live) Werte:

Fließen TTL Codelänge
Netz 10 Minuten 16 Zeichen
STIFT 48 Stunden 8 Charaktere

Parameter

Die von der Nest API unterstützten Autorisierungsparameter sind:

Name Art Erforderlich Beschreibung
client_id Schnur Ja Verfügbar auf der Seite OAuth-Clients.
redirect_uri Schnur Nein Verwenden Sie dies, um den gewünschten Umleitungs-URI anzugeben, wenn für Ihren Client mehrere Umleitungs-URIs konfiguriert sind. Lassen Sie es weg, um Ihren Standard-Umleitungs-URI zu verwenden.

Fügen Sie keine anderen Parameter innerhalb des redirect_uri Parameter selbst, sollte es eine Umleitung URI entsprechen genau für Ihren Client konfiguriert.
state Schnur Ja Hiermit können Sie einen Nicht-erratbar Wert zu bekämpfen angeben CSRF - Attacken . Andernfalls verwenden Sie den Standardwert STATE .

Fehlermeldungen zur PIN-basierten Autorisierung

Die folgenden Fehlermeldungen können Benutzern bei PIN-basierten Autorisierungscode-Anfragen angezeigt werden:

Benutzerfehlermeldung Erläuterung
Client-ID oder Statusparameter fehlen. Die Ermächtigung URL fehlt entweder die client_id oder state oder beides. Stellen Sie sicher, dass die übergebene Autorisierungs-URL vollständig und korrekt ist.
Hoppla! Wir haben einen Fehler festgestellt. Bitte versuche es erneut. Dieser Fehler tritt wie folgt auf:
  • Das Nest Service ist nach unten. Warte, bis der Nest-Dienst wiederhergestellt ist.
  • Ein Client existiert nicht für die gegebene client_id . Stellen Sie sicher , die übergebene Berechtigung URL den richtigen verwendet client_id .
Anschluss an Firmennamen ist derzeit nicht verfügbar. Weitere Informationen erhalten Sie von Nest. Der Client hat das Benutzerkontingent überschritten. Senden Sie Ihren Kunden zur Überprüfung, um weitere Benutzer hinzuzufügen.

URI-basierte Autorisierungsfehlerantworten umleiten

Für alle Antworten, Content-Type: application/json .

Fehlende erforderliche Parameter

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Erläuterung Ein erforderlicher Parameter, PARAM_NAME , fehlt in der Autorisierungscode Anfrage.

redirect_uri nicht vorregistriert

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
Erläuterung Der redirect_uri Parameter in der Zugriffstoken Anforderung verwendet wird , nicht für den Client konfiguriert eine der Umleitungs URIs entspricht.

Zugriffstoken-Anfrage

Wir empfehlen Ihnen mit diesem entsprechen OAuth - Standard , die Angebote der Sicherheit in der Anfrage Körper , indem die Client - Anmeldeinformationen erhöht. Anrufe mit Client-Anmeldeinformationen in der Kopfzeile funktionieren weiterhin, werden jedoch nicht empfohlen.

Die Zugriffstoken-Anfrage hat die Form einer HTTP-POST-Anfrage.

Parameter

Name Art Erforderlich Beschreibung
code Schnur Ja Der Autorisierungscode, der übergeben wird, nachdem Ihr Kunde zugestimmt hat, Ihrer App Zugriff auf Nest-Daten zu gewähren. Dieser Wert wird durch eine erfolgreiche Autorisierungscode-Anforderung bereitgestellt.

Erfahren Sie, wie Sie die Autorisierung einrichten
client_id Schnur Ja Verfügbar auf der Seite OAuth-Clients.
client_secret Schnur Ja Verfügbar auf der Seite OAuth-Clients; kann auch als Anwendungsschlüssel bezeichnet werden.
grant_type Schnur Ja Muss diese Zeichenfolge sein: authorization_code

Antwort

Für alle Antworten, Content-Type: application/json

HTTP-Statuscode Beschreibung Körper
200 OK Zugriffstoken wird zurückgegeben. Verwenden Sie das Zugriffstoken bei Anrufen beim Nest-Dienst. LONG ist die Anzahl der Sekunden, bis das Token abläuft. {
"access_token":"STRING",
"expires_in":LONG
}

Lebensdauer des Zugriffstokens

Wir unterstützen keine Refresh - Token , weil Zugriffstoken effektiv unverfallbare sind. Siehe die Berechtigungs Übersicht für weitere Informationen über Web- und PIN-basierten Autorisierungsablauf.

Zugriffstoken-Fehlerantworten

Für alle Antworten, Content-Type: application/json .

Autorisierungscode abgelaufen

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
Erläuterung Der Autorisierungscode ist abgelaufen. Zum Anfordern eines Zugriffstokens ist ein neuer Autorisierungscode erforderlich.

Autorisierungscode nicht gefunden

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
Erläuterung Der code Parameter ist ungültig. Überprüfen Sie, ob Sie den richtigen Autorisierungscode verwenden.

Kunde nicht aktiv

Einzelheiten
HTTP-Statuscode 403 Verboten
Körper {
"error":"client_not_active",
"error_description":"client is not active"
}
Erläuterung Überprüfen Sie, ob Sie die richtigen verwenden Parameter . Wenn die Parameter korrekt sind und der Fehler nur bei einigen Autorisierungsmethoden auftritt (z. B. ist die Autorisierung mit Postman erfolgreich, aber nicht mit Curl), liegt möglicherweise ein Fehler in Ihrer Syntax vor.

Dieser Fehler tritt auch auf, wenn Ihr Client deaktiviert ist.

Client-Geheimnis nicht gefunden

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"oauth2_error",
"error_description":"client secret not found"
}
Erläuterung Der client_secret Parameter ist ungültig. Überprüfen Sie, ob Sie die richtige verwenden client_secret Wert.

Fehlende erforderliche Parameter

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Erläuterung Ein erforderlicher Parameter, PARAM_NAME , fehlt aus dem Zugriffstoken Anfrage.

redirect_uri nicht erlaubt

Einzelheiten
HTTP-Statuscode 400 Schlechte Anfrage
Körper {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
Erläuterung Der redirect_uri Parameter wurde im Zugriffstoken Anfrage verwendet.