Maison > Java > javaDidacticiel > Comment résoudre les erreurs « 400 Bad Request Failed Precondition » dans l'API REST de Gmail ?

Comment résoudre les erreurs « 400 Bad Request Failed Precondition » dans l'API REST de Gmail ?

Linda Hamilton
Libérer: 2024-10-24 11:02:02
original
1073 Les gens l'ont consulté

How to Resolve

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 :

  • Les informations d'identification d'un compte de service sont utilisées dans un domaine Google Apps, mais le compte de service n'a pas reçu d'autorité à l'échelle du domaine pour accéder aux données utilisateur.

Étapes de résolution :

  1. Activer l'autorité à l'échelle du domaine pour le compte de service :

    • Connectez-vous à la console d'administration du domaine Google Apps.
    • Accédez à Sécurité > Paramètres avancés > Gérer l'accès client API.
    • Collez l'ID client du compte de service dans le champ « Nom du client ».
    • 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
      Copier après la connexion
  2. 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>
      Copier après la connexion
    • Remplacez les espaces réservés par les valeurs suivantes :

      • serviceAccountUserEmail : adresse e-mail du compte de service.
      • SERVER_P12_SECRET_PATH : chemin d'accès au fichier P12 contenant la clé privée.
      • SCOPES : tableau d'étendues de l'API Gmail.
  3. 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>
      Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal