Hataları Giderme

Farklı katmanlarda hatalar oluşabilir. Hatanın oluştuğu yere bağlı olarak farklı şekillerde bildirim alabilirsiniz.

Gerekli OAuth Parametreleri

client_id veya kapsam gibi gerekli OAuth parametrelerini ayarlamayı unutursanız tarayıcınızın JavaScript konsolunda bir hata mesajı görürsünüz.

JavaScript Konsolu Hataları

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

Bazı hataları düzeltmek için Google API'leri konsolunda değişiklik yapmanız gerekebilir.

Geçersiz OAuth Parametre Değerleri

Geçersiz değerleri geçersiz istemci kimliği, kapsam tanımlayıcıları veya yanıt türü değerleri gibi OAuth parametrelerine 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, parametre olarak hata yanıtıyla tetiklenir. Aşağıda bir örnek OAuth hata yanıtı verilmiştir.

  {
    "error":"access_denied"
  }

Örnek olarak şunlar verilebilir:

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

Bu örnekte, başarı ve hata OAuth yanıtlarının nasıl işleneceği gösterilmektedir:

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

OAuth Olmayan Hatalar

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

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

Bu kitaplık, bu hataları yakalar ve ayarlanmışsa error_callback tetikler. 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
});