Gmail REST API: 「400 Bad Request Failed Precondition」エラーの解決
Gmail REST API を使用したサーバー間通信の場合、 「400 Bad Request Failed Precondition」エラーが発生する場合があります。この問題とその解決方法の詳細な説明は次のとおりです。
原因:
「前提条件の失敗」エラーは、リクエストの前提条件が満たされていないことを示します。具体的には、このエラーは次の場合に発生します。
解決手順:
サービス アカウントのドメイン全体の権限を有効にする:
[API スコープ] に次のスコープを入力してフル アクセスを付与します。フィールド:
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
サーバー トークンを使用して資格情報を作成:
次を使用します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>
プレースホルダーを次の値に置き換えます:
Gmail サービスの作成:
次のコードを使用して Gmail サービス オブジェクトを作成します:
<code class="java">Gmail gmailService = new Gmail.Builder(httpTransport, jsonFactory, credential) .setApplicationName(APP_NAME) .build();</code>
次の手順に従うことで、Google Apps ドメイン内のユーザー データにアクセスするために必要な権限がサービス アカウントにあることを確認し、「400 Bad Request Failed Precondition」エラーを解決できます。
以上がGmail REST API の「400 Bad Request Failed Precondition」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。