API REST Gmail : résolution des erreurs « 400 conditions préalables d'échec de requête incorrecte »
Pour la communication de serveur à serveur à l'aide de l'API REST Gmail, vous pouvez rencontrer des erreurs « 400 Bad Request Failed Precondition ». Voici une explication détaillée du problème et comment le résoudre :
Cause :
L'erreur « Échec de la condition préalable » indique qu'une condition préalable pour la demande n'a pas été remplie. Plus précisément, cette erreur se produit lorsque :
Étapes de résolution :
Activer l'autorité à l'échelle du domaine pour le compte de service :
Accordez un accès complet en saisissant les étendues suivantes dans les « Étendues de l'API » champ :
https://mail.google.com https://www.googleapis.com/auth/gmail.compose https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/gmail.readonly
Créer des informations d'identification à l'aide d'un jeton de serveur :
Utilisez ce qui suit code pour créer un objet GoogleCredential :
<code class="java">GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(jsonFactory) .setServiceAccountId(serviceAccountUserEmail) // requesting the token .setServiceAccountPrivateKeyFromP12File(new File(SERVER_P12_SECRET_PATH)) .setServiceAccountScopes(SCOPES) // see https://developers.google.com/gmail/api/auth/scopes .setServiceAccountUser("[email protected]") .build(); credential.refreshToken();</code>
Remplacez les espaces réservés par les valeurs suivantes :
Créer un service Gmail :
Utilisez le code suivant pour créer un objet de service Gmail :
<code class="java">Gmail gmailService = new Gmail.Builder(httpTransport, jsonFactory, credential) .setApplicationName(APP_NAME) .build();</code>
En suivant ces étapes, vous pouvez vous assurer que votre compte de service dispose des autorisations nécessaires pour accéder aux données utilisateur au sein d'un domaine Google Apps et résoudre les erreurs « 400 Bad Request Failed Precondition Precondition ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!