Hataları ele alma

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

Gerekli OAuth Parametreleri Eksik

Client_id veya kapsam gibi gerekli OAuth parametrelerini ayarlamayı unutursanız tarayıcınızın JavaScript Konsolunda 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ı düzeltmek için Google API'leri konsolunda değişiklik yapılması gerekebilir.

Geçersiz OAuth Parametre Değerleri

OAuth parametrelerinde geçersiz istemci kimliği, kapsam tanımlayıcıları veya yanıt türü değerleri gibi geçersiz değerler belirlerseniz OAuth hata sayfası gösterilir.

OAuth Hataları

OAuth Hata Yanıtları

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

  {
    "error":"access_denied"
  }

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

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

Aşağıdaki örnekte, başarılı 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 Harici Hatalar

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

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

Bu kitaplık bu hataları yakalar ve ayarlanırsa error_callback etiketini tetikler. Hata türünü aşağıdaki gibi 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
});