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.
OAuth yapılandırma hatalarını düzeltme
Bazı hataların çözülmesi için Google APIs konsolunda değişiklik yapılması gerekebilir.
- Henüz yoksa istemci kimliği oluşturur.
- Pop-up kullanıcı deneyimi için mevcut akışı tetikleyebilecek tüm alanları
Authorized JavaScript origins
alanına ekleyin. - Yönlendirme kullanıcı deneyimi için yetkilendirme yanıtları alabilecek tüm URL'leri
Authorized redirect URIs
alanına ekleyin. - OAuth izin ekranınızı doğru şekilde yapılandırın.
- Gerekirse uygulamanızı doğrulamaya 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 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 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.
- Kullanıcı, OAuth isteğini reddeder.
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:
- Pop-up pencere açılmaz.
- 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
});