פתרון בעיות באימות ובהרשאות

בדף הזה מתוארות כמה בעיות נפוצות שעשויות להתרחש באימות ובהרשאות.

This app isn't verified

אם במסך ההסכמה של OAuth מוצגת האזהרה "האפליקציה הזו לא מאומתת", האפליקציה שלכם מבקשת היקפי הרשאות שמספקים גישה לנתונים רגישים של משתמשים. אם האפליקציה שלכם משתמשת בהיקפי גישה רגישים, היא תצטרך לעבור את תהליך האימות כדי להסיר את האזהרה הזו ומגבלות אחרות. בשלב הפיתוח, תוכלו לדלג על האזהרה הזו על ידי בחירה באפשרות מתקדם > מעבר אל {Project Name} (לא בטוח).

File not found error for credentials.json

כשמריצים את דוגמת הקוד, יכול להיות שתופיע הודעת השגיאה 'הקובץ לא נמצא' או 'אין קובץ כזה' לגבי credentials.json.

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

אחרי שיוצרים את פרטי הכניסה, צריך לוודא שקובץ ה-JSON שהורדתם נשמר בתור credentials.json. לאחר מכן מעבירים את הקובץ לספריית העבודה.

Token has been expired or revoked

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

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

שגיאות ב-Python

ריכזנו כאן כמה מהשגיאות הנפוצות ב-Python.

AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

השגיאה הזו יכולה להתרחש ב-Mac OSX, כאשר התקנת ברירת המחדל של המודול six (תלות בספריית Python) נטענת לפני זו שמותקנת על ידי pip. כדי לפתור את הבעיה, מוסיפים את מיקום ההתקנה של pip למשתנה הסביבה PYTHONPATH:

  1. קובעים את מיקום ההתקנה של pip:

    pip show six | grep "Location:" | cut -d " " -f2
    

    חשוב לזכור את המיקום הזה כי תצטרכו אותו בשלב הבא.

  2. מוסיפים את השורה הבאה לקובץ ~/.bashrc, מחליפים את INSTALL_PATH במיקום שנקבע בשלב הקודם:

    export PYTHONPATH=$PYTHONPATH:INSTALL_PATH
    
  3. טוענים מחדש את הקובץ ~/.bashrc:

    source ~/.bashrc
    

TypeError: sequence item 0: expected str instance, bytes found

השגיאה הזו נובעת מבאג ב-httplib2. כדי לפתור את הבעיה, צריך לשדרג לגרסה האחרונה של httplib2:

pip install --upgrade httplib2

Cannot uninstall 'six'

כשמריצים את הפקודה pip install, ייתכן שתופיע השגיאה הבאה:

Cannot uninstall 'six'. It is a distutils installed project and thus we
cannot accurately determine which files belong to it which would lead to
only a partial uninstall.

השגיאה הזו מתרחשת ב-Mac OSX כש-pip מנסה לשדרג את החבילה six שמותקנת מראש. כדי לעקוף את הבעיה, מוסיפים את הדגל --ignore-installed six לפקודה pip install.