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.
OAuth Yapılandırma Hatalarını Düzeltme
Bazı hataları düzeltmek için Google API'leri konsolunda değişiklik yapılması gerekebilir.
- Henüz oluşturmadıysanız bir istemci kimliği oluşturur.
- Pop-up kullanıcı deneyimi için mevcut akışı tetikleyebilecek tüm alanları
Authorized JavaScript origins
öğesine ekleyin. - Yönlendirme kullanıcı deneyimi için
Authorized redirect URIs
öğesine yetkilendirme yanıtları alabilecek tüm URL'leri ekleyin. - OAuth İzin ekranınızı düzgün bir şekilde yapılandırın.
- Gerekirse uygulamanızı doğrulanması için gönderin.
- Google'ın OAuth 2.0 Politikalarına uymak için ek adımlar atmanız 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 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.
- Kullanıcı, OAuth isteğini reddeder.
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:
- pop-up pencere açılmazsa
- 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
});