Heim > Java > javaLernprogramm > Wie behebe ich den Fehler „400 Bad Request Failed Precondition' in der Gmail-REST-API?

Wie behebe ich den Fehler „400 Bad Request Failed Precondition' in der Gmail-REST-API?

Linda Hamilton
Freigeben: 2024-10-24 11:02:02
Original
1076 Leute haben es durchsucht

How to Resolve

Gmail REST API: Fehler „400 Bad Request Failed Precondition“ beheben

Für die Server-zu-Server-Kommunikation mit der Gmail REST API: Möglicherweise treten die Fehler „400 Bad Request Failed Precondition“ auf. Hier finden Sie eine detaillierte Erklärung des Problems und wie Sie es beheben können:

Ursache:

Der Fehler „Vorbedingung fehlgeschlagen“ weist darauf hin, dass eine Vorbedingung für die Anfrage nicht erfüllt wurde. Dieser Fehler tritt insbesondere auf, wenn:

  • Anmeldeinformationen für ein Dienstkonto innerhalb einer Google Apps-Domäne verwendet werden, dem Dienstkonto jedoch keine domänenweite Berechtigung für den Zugriff auf Benutzerdaten erteilt wurde.

Schritte zur Lösung:

  1. Domänenweite Autorität für Dienstkonto aktivieren:

    • Melden Sie sich bei der Admin-Konsole der Google Apps-Domäne an.
    • Navigieren Sie zu Sicherheit > Erweiterte Einstellungen > Verwalten Sie den API-Clientzugriff.
    • Fügen Sie die Client-ID des Dienstkontos in das Feld „Clientname“ ein.
    • Gewähren Sie vollständigen Zugriff, indem Sie die folgenden Bereiche in die „API-Bereiche“ eingeben. Feld:

      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
      Nach dem Login kopieren
  2. Anmeldeinformationen mit Server-Token erstellen:

    • Verwenden Sie Folgendes Code zum Erstellen eines GoogleCredential-Objekts:

      <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>
      Nach dem Login kopieren
    • Ersetzen Sie die Platzhalter durch die folgenden Werte:

      • serviceAccountUserEmail: E-Mail-Adresse des Dienstkontos.
      • SERVER_P12_SECRET_PATH: Pfad zur P12-Datei, die den privaten Schlüssel enthält.
      • SCOPES: Array von Gmail-API-Bereichen.
  3. Gmail-Dienst erstellen:

    • Verwenden Sie den folgenden Code, um ein Gmail-Dienstobjekt zu erstellen:

      <code class="java">Gmail gmailService = new Gmail.Builder(httpTransport,
                                              jsonFactory,
                                              credential)
                                     .setApplicationName(APP_NAME)
                                     .build();</code>
      Nach dem Login kopieren

Durch Befolgen dieser Schritte können Sie sicherstellen, dass Ihr Dienstkonto über die erforderlichen Berechtigungen für den Zugriff auf Benutzerdaten innerhalb einer Google Apps-Domäne verfügt und die Fehler „400 Bad Request Failed Precondition“ beheben.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „400 Bad Request Failed Precondition' in der Gmail-REST-API?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage