오류 처리

오류는 여러 레이어에서 발생할 수 있습니다. 오류가 발생한 위치에 따라 알림이 다르게 표시될 수 있습니다.

필수 OAuth 매개변수

client_id 또는 범위와 같은 필수 OAuth 매개변수를 설정하지 않으면 브라우저의 JavaScript 콘솔에 오류 메시지가 표시됩니다.

JavaScript 콘솔 오류

OAuth 구성 오류 수정

일부 오류를 해결하려면 Google API 콘솔을 변경해야 할 수 있습니다.

잘못된 OAuth 매개변수 값

잘못된 클라이언트 ID, 범위 식별자 또는 응답 유형 값과 같이 잘못된 값을 OAuth 매개변수로 설정하면 OAuth 오류 페이지가 표시됩니다.

OAuth 오류

OAuth 오류 응답

OAuth가 오류 응답을 반환할 수 있습니다. 이 경우 callback 함수가 오류 응답을 매개변수로 사용하여 트리거됩니다. 다음은 OAuth 오류 응답의 예입니다.

  {
    "error":"access_denied"
  }

다음은 몇 가지 예시입니다.

  1. 사용자가 OAuth 요청을 거부합니다.
  2. prompt=none 매개변수가 있는 OAuth 요청의 경우 사용자는 아직 인증되지 않았으며 요청된 범위에 대한 동의를 사전 구성하지 않았습니다.

다음 예에서는 성공 및 오류 OAuth 응답을 처리하는 방법을 보여줍니다.

function myCallback(response) {
  if (response.error) {
    // Handle error response
    ... ...
  } else if (response.code) {
    // Handle success code response
    ... ...
  }
}

OAuth 외 오류

OAuth는 다음과 같은 경우 동작을 정의하지 않습니다.

  1. 팝업 창이 열리지 않습니다.
  2. OAuth 응답이 반환되기 전에 팝업 창이 닫힙니다.

이 라이브러리는 이러한 오류를 캡처하고 설정된 경우 error_callback를 트리거합니다. 오류 유형을 확인하세요. 그러지 않으면 이 라이브러리가 나중에 새 오류 유형을 지원할 때 코드 로직이 영향을 받을 수 있습니다.

function myErrorCallback(err) {
  if (err.type == 'popup_failed_to_open') {
    // The popup window is failed to open
    ... ...
  } else if (err.type == 'popup_closed') {
    // The popup window is closed before an OAuth response is returned
    ... ...
  }
}

const client = google.accounts.oauth2.initCodeClient({
  client_id: 'YOUR_GOOGLE_CLIENT_ID',
  scope: 'https://www.googleapis.com/auth/calendar.readonly',
  ux_mode: 'popup',
  callback: myCallback,
  error_callback: myErrorCallback
});