טיפול בשגיאות

שגיאות עשויות להתרחש בשכבות שונות. יכול להיות שתקבלו התראות בדרכים שונות, בהתאם למיקום שבו מתרחשת השגיאה.

פרמטרים נדרשים של OAuth

אם תשכחו להגדיר את הפרמטרים הנדרשים של OAuth, כמו client_id או scope, תופיע הודעת שגיאה במסוף JavaScript של הדפדפן.

שגיאות ב-JavaScript Console

תיקון שגיאות בהגדרת OAuth

יכול להיות שתצטרכו לבצע שינויים במסוף Google APIs כדי לפתור שגיאות מסוימות.

ערכים לא חוקיים של פרמטרים של OAuth

אם תגדירו ערכים לא חוקיים לפרמטרים של OAuth, כמו מזהי היקף, ערכי סוג התגובה או מזהה הלקוח, תוצג לכם דף השגיאה של OAuth.

שגיאות OAuth

תגובות שגיאה של OAuth

יכול להיות ש-OAuth יחזיר הודעת שגיאה. במקרה כזה, הפונקציה callback תופעל עם הודעת השגיאה כפרמטר. בהמשך מופיעה דוגמה לתשובת שגיאה של OAuth.

  {
    "error":"access_denied"
  }

לפניכם מספר דוגמאות:

  1. המשתמש דוחה את בקשת ה-OAuth.
  2. בבקשת OAuth עם הפרמטר prompt=none, המשתמש עדיין לא מאומת ולא הגדיר מראש הסכמה להיקפי הגישה המבוקשים.

בדוגמה הזו מוסבר איך לטפל בתגובות ה-OAuth של הצלחה ושגיאה:

function myCallback(response) {
  if (response.error) {
    // Handle error response
    ... ...
  } else if (response.code) {
    // Handle success code response
    ... ...
  }
}

שגיאות שאינן של OAuth

OAuth לא מגדיר את ההתנהגויות במקרים הבאים:

  1. החלון הקופץ לא נפתח.
  2. חלון הקופץ נסגר לפני שהתקבלה תגובה של OAuth.

הספרייה הזו מתעדת את השגיאות האלה ומפעילה את האירוע error_callback אם הוא מוגדר. חשוב לבדוק את סוג השגיאה. אחרת, לוגיקה הקוד שלכם עשויה להיות מושפעת כשהספרייה תתמוך בסוגי שגיאות חדשים בהמשך.

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
});