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

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

פרמטרים נדרשים של 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
});