Hataları Giderme

Hatalar farklı katmanlarda gerçekleşebilir. Hatanın nerede gerçekleştiğine bağlı olarak farklı şekillerde bildirim alabilirsiniz.

Gerekli OAuth Parametreleri Eksik

client_id veya scope gibi gerekli OAuth parametrelerini ayarlamayı unutursanız tarayıcınızın JavaScript Konsolu'nda aşağıdaki gibi bir hata mesajı görürsünüz.

JavaScript Konsolu Hataları

OAuth yapılandırma hatalarını düzeltme

Bazı hataların çözülmesi için Google APIs konsolunda değişiklik yapılması gerekebilir.

Geçersiz OAuth Parametre Değerleri

OAuth parametrelerine geçersiz değerler (ör. geçersiz istemci kimliği, kapsam tanımlayıcıları veya yanıt türü değerleri) ayarlarsanız OAuth hata sayfasını görürsünüz.

OAuth Hataları

OAuth Hata Yanıtları

OAuth hata yanıtı döndürebilir. Bu durumda callback işleviniz, hata yanıtı parametre olarak kullanılarak tetiklenir. Aşağıda örnek bir OAuth hata yanıtı verilmiştir.

  {
    "error":"access_denied"
  }

Aşağıda bazı örnekler verilmiştir.

  1. Kullanıcı, OAuth isteğini reddeder.
  2. prompt=none parametresi içeren bir OAuth isteği için kullanıcının kimliği doğrulanmamış ve istenen kapsamlar için önceden yapılandırılmış izni yoktur.

Aşağıdaki örnekte, başarı ve hata OAuth yanıtlarının nasıl ele alınacağı gösterilmektedir.

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

OAuth dışı hatalar

OAuth aşağıdaki durumlarda davranışları tanımlamaz:

  1. Pop-up pencere açılmaz.
  2. OAuth yanıtı döndürülmeden önce pop-up pencere kapatılır.

Bu kitaplık bu hataları yakalar ve error_callback koşulunu tetikler. Aşağıdaki gibi hata türünü kontrol ettiğinizden emin olun. Aksi takdirde, bu kitaplık daha sonra yeni hata türlerini desteklediğinde kod mantığınız etkilenebilir.

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
});