Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Référence d'autorisation

Demande de code d'autorisation

En fonction du type de requête, nous implémentons différentes longueurs de code et valeurs TTL (Time-to-Live):

Couler TTL Longueur du code
la toile 10 minutes 16 caractères
ÉPINGLE 48 heures 8 caractères

Paramètres

Les paramètres d'autorisation pris en charge dans l'API Nest sont:

Nom Type Obligatoire La description
client_id chaîne Oui Disponible sur la page Clients OAuth.
redirect_uri chaîne non Utilisez cette option pour spécifier l'URI de redirection souhaité si plusieurs URI de redirection sont configurés pour votre client. Omettez-le pour utiliser votre URI de redirection par défaut.

N'incluez aucun autre paramètre dans le paramètre redirect_uri lui-même, il doit correspondre exactement à un URI de redirection configuré pour votre client.
state chaîne Oui Utilisez cette option pour spécifier une valeur non devinable pour lutter contre les attaques CSRF . Sinon, utilisez la valeur par défaut de STATE .

Messages d'erreur d'autorisation basés sur le code PIN

Les messages d'erreur suivants peuvent être affichés aux utilisateurs lors des demandes de code d'autorisation par code PIN:

Message d'erreur utilisateur Explication
ID client ou paramètres d'état manquants. L'URL d'autorisation ne client_id paramètre client_id ou state , ou les deux. Assurez-vous que l'URL d'autorisation transmise est complète et exacte.
Oups! Nous avons rencontré une erreur. Veuillez réessayer. Cette erreur se produit de ce qui suit:
  • Le service Nest est en panne. Attendez que le service Nest soit rétabli.
  • Un client n'existe pas pour le client_id donné. Assurez-vous que l'URL d'autorisation transmise utilise le bon client_id .
La connexion au nom de l'entreprise est actuellement indisponible. Veuillez contacter Nest pour plus d'informations. Le client a dépassé le quota utilisateur. Soumettez votre client pour examen pour ajouter d'autres utilisateurs.

Rediriger les réponses d'erreur d'autorisation basées sur l'URI

Pour toutes les réponses, content-type: application/json .

Paramètres requis manquants

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explication Un paramètre obligatoire, PARAM_NAME , est absent de la demande de code d'autorisation.

redirect_uri non pré-enregistré

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"input_data_error",
"error_description":"redirect_uri not pre-registered"
}
Explication Le paramètre redirect_uri utilisé dans la demande de jeton d'accès ne correspond à aucun des URI de redirection configurés pour votre client.

Demande de jeton d'accès

Nous vous recommandons de vous conformer à cette norme OAuth , qui offre une sécurité accrue en incluant les informations d'identification du client dans le corps de la demande. Les appels avec les informations d'identification du client dans l'en-tête continueront de fonctionner, mais ne sont pas recommandés.

La demande de jeton d'accès se présente sous la forme d'une demande HTTP POST.

Paramètres

Nom Type Obligatoire La description
code chaîne Oui Le code d'autorisation qui est transmis après que votre client a accepté de donner à votre application l'accès aux données Nest. Cette valeur est fournie par une demande de code d'autorisation réussie.

Découvrez comment configurer l'autorisation
client_id chaîne Oui Disponible sur la page Clients OAuth.
client_secret chaîne Oui Disponible sur la page Clients OAuth; peut également être appelée clé d'application.
grant_type chaîne Oui Doit être cette chaîne: authorization_code

Réponse

Pour toutes les réponses, type de contenu: application/json

Code d'état HTTP La description Corps
200 OK Le jeton d'accès est retourné. Utilisez le jeton d'accès lors des appels au service Nest. LONG est le nombre de secondes avant l'expiration du jeton. {
"access_token":"STRING",
"expires_in":LONG
}

Durée de vie du jeton d'accès

Nous ne prenons pas en charge les jetons d'actualisation , car les jetons d'accès n'expirent pas. Consultez la vue d' ensemble des autorisations pour plus d'informations sur le flux d'autorisation basé sur le Web et le code PIN.

Réponses aux erreurs de jeton d'accès

Pour toutes les réponses, content-type: application/json .

Code d'autorisation expiré

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"oauth2_error",
"error_description":"authorization code expired"
}
Explication Le code d'autorisation a expiré. Un nouveau code d'autorisation est nécessaire pour demander un jeton d'accès.

Code d'autorisation introuvable

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"oauth2_error",
"error_description":"authorization code not found"
}
Explication Le paramètre de code n'est pas valide. Vérifiez que vous utilisez le bon code d'autorisation.

Client non actif

Détails
Code d'état HTTP 403 Interdit
Corps {
"error":"client_not_active",
"error_description":"client is not active"
}
Explication Vérifiez que vous utilisez les bons paramètres . Si les paramètres sont corrects et que l'erreur se produit uniquement pour certaines méthodes d'autorisation (par exemple, l'autorisation est réussie avec Postman, mais pas avec Curl), il se peut qu'il y ait un problème avec votre syntaxe.

Cette erreur se produit également si votre client est désactivé.

Secret client introuvable

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"oauth2_error",
"error_description":"client secret not found"
}
Explication Le paramètre client_secret n'est pas valide. Vérifiez que vous utilisez la valeur client_secret correcte.

Paramètres requis manquants

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"oauth2_error",
"error_description":"missing required parameters: PARAM_NAME "
}
Explication Un paramètre obligatoire, PARAM_NAME , est absent de la demande de jeton d'accès.

redirect_uri non autorisé

Détails
Code d'état HTTP 400 Mauvaise demande
Corps {
"error":"input_error",
"error_description":"redirect_uri not allowed"
}
Explication Le paramètre redirect_uri été utilisé dans la demande de jeton d'accès.