Menangani Error

Kesalahan dapat terjadi di berbagai lapisan. Anda mungkin diberi tahu dengan cara yang berbeda, bergantung pada tempat terjadinya error.

Parameter OAuth Wajib Tidak Ada

Jika Anda lupa menyetel parameter OAuth yang diperlukan, seperti client_id atau scope, Anda akan melihat pesan error seperti di bawah ini di Konsol JavaScript browser.

Error Konsol JavaScript

Memperbaiki Error Konfigurasi OAuth

Perubahan pada konsol API Google mungkin diperlukan untuk mengatasi beberapa error.

Nilai Parameter OAuth Tidak Valid

Jika Anda menetapkan nilai yang tidak valid ke parameter OAuth, seperti ID klien, ID cakupan, atau nilai jenis respons yang tidak valid, Anda akan melihat halaman error OAuth.

Error OAuth

Respons Error OAuth

OAuth dapat menampilkan respons error, dalam hal ini fungsi callback Anda akan dipicu dengan respons error sebagai parameternya. Berikut adalah contoh respons error OAuth.

  {
    "error":"access_denied"
  }

Beberapa contohnya tercantum sebagai berikut.

  1. Pengguna menolak permintaan OAuth.
  2. Untuk permintaan OAuth dengan parameter prompt=none, pengguna belum diautentikasi dan belum mengonfigurasi izin untuk cakupan yang diminta.

Contoh di bawah ini 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:

  1. jendela {i>pop-up<i} gagal terbuka.
  2. jendela pop-up ditutup sebelum respons OAuth ditampilkan.

Library ini menangkap error tersebut dan memicu error_callback jika ditetapkan. Pastikan untuk memeriksa jenis error seperti di bawah. 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
});