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

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

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

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

שגיאות בקונסולת JavaScript

תיקון שגיאות בהגדרת 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
});