> Java > java지도 시간 > 본문

Gmail REST API의 \'400 잘못된 요청 실패 전제 조건\' 오류를 해결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-24 11:02:02
원래의
1003명이 탐색했습니다.

How to Resolve

Gmail REST API: "400 잘못된 요청 실패 전제 조건" 오류 해결

Gmail REST API를 사용하는 서버 간 통신의 경우, "400 Bad Request Failed Precondition" 오류가 발생할 수 있습니다. 문제에 대한 자세한 설명과 해결 방법은 다음과 같습니다.

원인:

"실패한 전제 조건" 오류는 요청에 대한 전제 조건이 충족되지 않았음을 나타냅니다. 특히 이 오류는 다음과 같은 경우에 발생합니다.

  • 서비스 계정의 자격 증명이 Google Apps 도메인 내에서 사용되지만 서비스 계정에 사용자 데이터에 액세스할 수 있는 도메인 전체 권한이 부여되지 않았습니다.

해결 단계:

  1. 서비스 계정에 대한 도메인 전체 권한 활성화:

    • Google Apps 도메인 관리 콘솔에 로그인합니다.
    • 보안 > 고급 설정 > API 클라이언트 액세스를 관리합니다.
    • 서비스 계정의 클라이언트 ID를 "클라이언트 이름" 필드에 붙여넣습니다.
    • "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
      로그인 후 복사
  2. 서버 토큰을 사용하여 자격 증명 생성:

    • 다음을 사용합니다. 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>
      로그인 후 복사
    • 자리 표시자를 다음 값으로 바꿉니다.

      • serviceAccountUserEmail: 서비스 계정의 이메일 주소.
      • SERVER_P12_SECRET_PATH: 개인 키가 포함된 P12 파일의 경로.
      • SCOPES: Gmail API 범위의 배열.
  3. Gmail 서비스 생성:

    • 다음 코드를 사용하여 Gmail 서비스 개체를 생성합니다:

      <code class="java">Gmail gmailService = new Gmail.Builder(httpTransport,
                                              jsonFactory,
                                              credential)
                                     .setApplicationName(APP_NAME)
                                     .build();</code>
      로그인 후 복사

이 단계에 따라 서비스 계정에 Google Apps 도메인 내의 사용자 데이터에 액세스하는 데 필요한 권한이 있는지 확인하고 '400 잘못된 요청 실패 전제 조건' 오류를 해결할 수 있습니다.

위 내용은 Gmail REST API의 \'400 잘못된 요청 실패 전제 조건\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!