Error dapat terjadi di berbagai lapisan. Anda mungkin mendapatkan notifikasi dengan cara yang berbeda-beda, bergantung pada tempat terjadinya error.
Parameter OAuth Wajib Tidak Ada
Jika lupa menyetel parameter OAuth yang diperlukan, seperti client_id atau scope, Anda akan melihat pesan error seperti di bawah ini di Konsol JavaScript browser.
Memperbaiki Error Konfigurasi OAuth
Perubahan di konsol Google API mungkin diperlukan untuk menyelesaikan beberapa error.
- Membuat client ID jika belum.
- Untuk UX pop-up, tambahkan semua domain yang dapat memicu alur saat ini ke
Authorized JavaScript origins
. - Untuk UX pengalihan, tambahkan semua URL yang dapat menerima respons otorisasi ke
Authorized redirect URIs
. - Konfigurasikan layar Izin OAuth dengan benar.
- Kirimkan aplikasi Anda untuk diverifikasi jika diperlukan.
- Anda mungkin perlu melakukan langkah-langkah tambahan untuk mematuhi Kebijakan OAuth 2.0 Google.
Nilai Parameter OAuth Tidak Valid
Jika Anda menetapkan nilai yang tidak valid ke parameter OAuth, seperti client ID, ID cakupan, atau nilai jenis respons yang tidak valid, Anda akan melihat halaman error OAuth.
Respons Error OAuth
OAuth dapat menampilkan respons error. Jika demikian, fungsi callback
Anda akan dipicu dengan respons error sebagai parameter. Berikut adalah
contoh respons error OAuth.
{ "error":"access_denied" }
Beberapa contoh tercantum di bawah.
- Pengguna menolak permintaan OAuth.
- Untuk permintaan OAuth dengan parameter
prompt=none
, pengguna belum diautentikasi dan belum mengonfigurasi izin sebelumnya untuk cakupan yang diminta.
Contoh di bawah menunjukkan cara menangani respons OAuth yang berhasil dan error.
function myCallback(response) {
if (response.error) {
// Handle error response
... ...
} else if (response.code) {
// Handle success code response
... ...
}
}
Error Non-OAuth
OAuth tidak menentukan perilaku saat:
- jendela pop-up gagal terbuka.
- jendela pop-up ditutup sebelum respons OAuth ditampilkan.
Library ini menangkap error ini, dan memicu error_callback
jika
ditetapkan. Pastikan untuk memeriksa jenis error seperti di bawah ini. Jika tidak, logika kode Anda mungkin
akan terpengaruh saat library ini mendukung jenis error baru nanti.
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
});