הצגת 100 הקבצים הראשונים & תיקיות ב-Google Drive

הצגת 100 הקבצים הראשונים תיקיות ב-Google Drive

מידע על Codelab זה

subjectהעדכון האחרון: יוני 25, 2021
account_circleנכתב על ידי A Googler (Aug 2017; updated Apr 2021)

1.‏ שימוש בממשקי ה-API של Google Workspace

בשיעור הזה תלמדו איך להשתמש בממשקי API ל-RESTful מבוסס-HTTP ב-Google Workspace (לשעבר G Suite). הדוגמה תתבצע ב-Python כדי לקצר וזמינות, אבל תוכלו גם לבחור להשתמש בשפת הפיתוח המועדפת עליכם. חשיפה לנושאי מבוא כמו שימוש במסוף המפתחים כדי ליצור/לנהל פרויקטים, קבלת פרטי כניסה להרשאות והתקנת ספריות הלקוח של ממשקי ה-API. אחרי שתקפידו על הפרטים הרשמיים, תנסחו אפליקציה להצגת 100 הקבצים הראשונים תיקיות ב-Google Drive באמצעות ה-API שלו.

מה תלמדו

  • יצירת פרויקט באמצעות Google/Cloud Developers Console
  • השגה ו- להשתמש בפרטי כניסה של אפליקציית OAuth2 באפליקציה שלך
  • מידע על השימוש בספריות הלקוח של Google APIs
  • כתיבת אפליקציות באמצעות Google & ממשקי API של Google Workspace
  • קבלת פרטי קבצים ותיקיות באמצעות Google Drive API

למה תזדקק?

  • גישה לאינטרנט ולדפדפן אינטרנט
  • חשבון Google (חשבונות Google Workspace עשויים לדרוש אישור אדמין)
  • היכרות עם מערכות תואמות POSIX כמו Linux Mac OS X
  • יכולת ליצור קובצי מקור באמצעות עורך קוד או פקודות מעטפת.
  • מיומנויות בסיסיות ב-Python (2 או 3), אבל אפשר להשתמש בכל שפה נתמכת
  • תיקיות או קבצים מסוימים ב-Google Drive

2.‏ סקר

איך תשתמשו במדריך הזה של Codelab?

איך היית מדרג את החוויה שלך עם הכלים למפתחים של Google Workspace ממשקי API?

3.‏ סקירה כללית

ב-Codelab הזה תלמדו איך:

  1. הורדת ספריית הלקוח של Google APIs ל-Python
  2. יצירת פרויקט חדש ב-Google/Cloud Developers Console
  3. מקבלים את פרטי הכניסה הנחוצים לאפליקציה
  4. משתמשים בפרטי הכניסה האלה כדי לגשת ל-Google Drive API

אם אתם מעדיפים לא להשתמש ב-Python, אתם מוזמנים להטמיע את ה-Codelab בכלי הפיתוח המועדף עליכם (ספריות הלקוח בשפות נתמכות כאן) ופשוט להפנות לדוגמאות של Python כקוד מדומה (ניתן להרצה).

4.‏ אישור סביבת Python

ה-Codelab הזה מחייב אותך להשתמש בשפת Python (למרות ששפות רבות נתמכות על ידי ספריות הלקוח של Google APIs, לכן אל תהססו לפתח משהו מקביל בכלי הפיתוח המועדף עליכם ופשוט להשתמש ב-Python כ-pseudocode). באופן ספציפי, ה-Codelab הזה תומך ב-Python 2 וב-Python 2, אבל אנחנו ממליצים לעבור ל-3.x בהקדם האפשרי.

משתמשים יכולים להשתמש ב-Cloud Shell ישירות מ-Cloud Console כדי להשתמש בו בלי סביבת פיתוח מקומית. לכן אפשר לבצע את המדריך הזה בענן באופן מלא באמצעות דפדפן אינטרנט. Cloud Shell שימושי במיוחד אם אתם מפתחים או מתכננים להמשיך לפתח עם מוצרי GCP ממשקי API. באופן ספציפי יותר ב-Codelab הזה, Cloud Shell כבר התקין מראש את שתי הגרסאות של Python.

ב-Cloud Shell מותקן גם IPython... זהו כלי תרגום אינטראקטיבי ב-Python ברמה גבוהה יותר, ואנחנו ממליצים להשתמש בו, במיוחד אם אתם חברים בקהילה של מדעי הנתונים או למידת המכונה. אם כן, IPython הוא כלי התרגום המוגדר כברירת מחדל ב-Notebooks של Jupyter וגם ב-Colab, Jupyter Notebooks באירוח של Google Research.

ב-IPython יש עדיפות למפענח Python 3, אבל הוא יחזור ל-Python 2 אם אין גרסה 3.x. אפשר לגשת ל-IPython מ-Cloud Shell, אבל אפשר להתקין אותו גם בסביבת פיתוח מקומית. צאו עם ^D (Ctrl-d) ומאשרים את ההצעה כדי לצאת. פלט לדוגמה של התחלת ipython ייראה כך:

$ ipython
Python 3.7.3 (default, Mar 4 2020, 23:11:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

אם אתם לא מעדיפים להשתמש ב-IPython, השימוש במפענח אינטראקטיבי סטנדרטי של Python (ב-Cloud Shell או בסביבת הפיתוח המקומית שלכם) מקובל עליכם (לצאת גם באמצעות ^D):

$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python3
Python 3.7.3 (default, Mar 10 2020, 02:33:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

המערכת של Codelab גם יוצאת מנקודת הנחה שיש לכם את כלי ההתקנה pip (מנהל החבילות Python ומקודד התלות). הוא מגיע עם גרסאות 2.7.9 ומעלה או 3.4 ומעלה. אם אתם משתמשים בגרסה ישנה יותר של Python, תוכלו לעיין במדריך הזה כדי לקבל הוראות להתקנה. בהתאם להרשאות שלכם, יכול להיות שתצטרכו להיות sudo או גישה של משתמש-על, אבל בדרך כלל זה לא המצב. אפשר גם להשתמש במפורש ב-pip2 או ב-pip3 כדי להריץ את pip בגרסאות Python ספציפיות.

המשך השיעור ב-Codelab מבוסס על ההנחה שאתם משתמשים ב-Python 3. הוראות ספציפיות יסופקו עבור Python 2 אם הן שונות באופן משמעותי מ- 3.x.

*יצירה של סביבות וירטואליות ושימוש בהן

הקטע הזה הוא אופציונלי ונדרש רק עבור מי שחייבים להשתמש בסביבה וירטואלית עבור ה-Codelab הזה (בהתאם לסרגל הצד של האזהרה שלמעלה). אם במחשב שלכם יש רק Python 3, אתם יכולים פשוט להפיק את הפקודה הבאה וליצור Virtualenv בשם my_env (אם תרצו, תוכלו לבחור שם אחר):

virtualenv my_env

אבל אם יש לכם גם את Python 2 וגם 3 במחשב, אנחנו ממליצים להתקין וירטואליה של Python 3. אפשר לעשות זאת באמצעות -p flag באופן הבא:

virtualenv -p python3 my_env

צריך להיכנס ל-Virtualenv החדש שנוצר על ידי "Activate" (הפעלה) כך:

source my_env/bin/activate

כדי לוודא שאתם נמצאים בסביבה, בודקים את הנחיית המעטפת לפני שם הסביבה, כלומר,

(my_env) $ 

עכשיו אמורה להיות לך אפשרות pip install את כל החבילות הנדרשות, להפעיל קוד בתוך ההפעלה הזו וכו'. יתרון נוסף הוא שאם תגרום לבלגן לגמרי, תקבל מצב שבו התקנת Python שלך נפגמה וכו', תוכל לפוצץ את כל הסביבה בלי להשפיע על שאר המערכת.

5.‏ התקנה של ספריית הלקוח של Google APIs ל-Python

הקוד של Codelab הזה מחייב שימוש בספריית הלקוח של Google APIs ל-Python. לכן, התהליך פשוט להתקנה ואם לא צריך לעשות שום דבר.

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

*התקנת ספריות לקוח

(אופציונלי) אפשר לדלג על השלב הזה אם משתמשים ב-Cloud Shell או בסביבה מקומית שבה כבר התקנתם את ספריות הלקוח. צריך לעשות את זה רק אם אתם מפתחים באופן מקומי ועדיין לא התקנתם אותם (או אם אתם לא בטוחים שהתקנתם אותם). הדרך הקלה ביותר היא להשתמש ב-pip (או ב-pip3) לביצוע ההתקנה (כולל עדכון של pip עצמו במקרה הצורך):

pip install -U pip google-api-python-client oauth2client

אישור ההתקנה

הפקודה הזו מתקינה את ספריית הלקוח וגם את החבילות שהיא תלויה בה. לא משנה אם אתם משתמשים ב-Cloud Shell או בסביבה שלכם, חשוב לוודא שספריית הלקוח מותקנת על ידי ייבוא החבילות הנדרשות, ומוודאים שאין שגיאות בייבוא (וגם אין פלט):

python3 -c "import googleapiclient, httplib2, oauth2client"

אם אתם משתמשים ב-Python 2 במקום זאת (מ-Cloud Shell), תוצג לכם אזהרה על כך שהתמיכה בו הוצאה משימוש:

*******************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset

To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
*******************************************************************************

ברגע שניתן להריץ את הייבוא "test" הפקודה הושלמה בהצלחה (ללא שגיאות/פלט), אתם מוכנים להתחיל לדבר עם ממשקי ה-API של Google!

סיכום

מכיוון שמדובר ב-Codelab במבוא, ההנחה היא שעדיין לא התחלתם להשתמש בממשקי ה-API של Google ושל Google Workspace. אם כבר יש לכם ניסיון ביצירת פרויקטים וביצירת הרשאות "מזהי לקוחות של OAuth". אם כן, אפשר ליצור פרויקט קיים או לעשות בו שימוש חוזר, ליצור מזהה לקוח קיים של OAuth או לעשות בו שימוש חוזר, ולדלג על שני המודולים הבאים ולעבור ישירות אל 'הצגת הקבצים ב-Drive אפליקציית תיקיות או לדלג אל 'שימוש מתקדם ב-devconsole' כדי לעיין בשלבים האלה עם פחות הנחיות.

6.‏ ציון הפרויקט במסוף Cloud

לאפליקציה שמשתמשת ב-Google APIs נדרש פרויקט. אלו מנוהלים ב-Google Cloud Developers Console, או פשוט 'devconsole'. ב-Codelab הזה נשתמש רק ב-Google Drive API, כך שיש לנו קישור קסם (בהמשך בשלב 1) שהוא:

  • מעביר אותך ל-devconsole
  • מנחה אותך איך ליצור פרויקט חדש (או לבחור פרויקט קיים)
  • הפעלה אוטומטית של Drive API

צאו לדרך!

  1. עוברים לכתובת console.developers.google.com/start/api?id=drive ומתחברים לחשבון Google.
  2. אם עדיין לא הגדרתם פרויקטים, תראו את המסך הבא עם אישור התנאים וההגבלות של Google APIs:

e3b2076ba58a7cd7.png אחרי אישור התנאים, ייפתח פרויקט חדש בשם My Project (הפרויקט שלי) ייווצר, ו-Drive API יופעל באופן אוטומטי. 3. אם במקום זאת כבר יצרתם פרויקט (למשל, ה-Codelab הקודם שלך?), יופיע במקום זאת המסך הבא: 50b3b8ace6721f1f.png כשלוחצים על התפריט הנפתח Create a project, בוחרים פרויקט קיים או יוצרים פרויקט חדש. 69db3867445ad9e5.png אחרי הבחירה (פרויקט חדש או קיים), Drive API יופעל בשבילך באופן אוטומטי. 4. אחרי האישור הזה, אפשר לדעת ש-Drive API הופעל: 365e7de1377493bb.png 5. לוחצים על Go to credentials כדי לעבור לשלב הבא.

7.‏ *אישור בקשות API (הרשאת משתמש)

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

מבוא להרשאה (בתוספת אימות חלק)

כדי לשלוח בקשות לממשקי ה-API, האפליקציה שלכם צריכה את ההרשאה המתאימה. אימות, מילה דומה, מתאר את פרטי הכניסה – אתם מאמתים את הזהות כשאתם מתחברים לחשבון Google באמצעות התחברות סיסמה. אחרי האימות, השלב הבא הוא אם אתם מורשים לגשת לנתונים, כמו קובצי blob ב-Cloud Storage או קבצים אישיים של משתמש ב-Google Drive, או אם לקוד שלכם.

Google APIs תומכים בכמה סוגי הרשאות, אבל הסוג הנפוץ ביותר בקרב משתמשי Google Workspace API הוא הרשאת משתמש, כי האפליקציה לדוגמה ב-Codelab הזו ניגשת לנתונים ששייכים למשתמשי קצה. משתמשי הקצה האלה חייבים לתת לאפליקציה שלכם הרשאת גישה לנתונים שלהם. המשמעות היא שהקוד צריך לקבל פרטי כניסה מסוג OAuth2 של חשבון משתמש.

כדי לקבל פרטי כניסה של OAuth2 להרשאות משתמש, חוזרים למנהל ה-API ובוחרים באפשרות 'פרטי כניסה' שבתפריט הניווט הימני:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

שם תראו את כל פרטי הכניסה בשלושה קטעים נפרדים:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

הראשונה היא למפתחות API, למזהי לקוח ב-OAuth 2.0 ולחשבונות שירות OAuth2 האחרונים – אנחנו משתמשים בזה שנמצא באמצע.

יצירת פרטי כניסה

בחלק העליון של הדף Credentials (פרטי כניסה), לוחצים על הלחצן + Create Credentials (+ יצירת פרטי כניסה), ואז תופיע תיבת דו-שיח שבה בוחרים באפשרות OAuth client ID:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

במסך הבא יש שתי פעולות: הגדרת ההרשאה 'מסך ההסכמה' באפליקציה ובחירת סוג האפליקציה:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

אם לא הגדרתם מסך הסכמה, האזהרה תופיע במסוף ויהיה עליכם לעשות זאת עכשיו. (אם מסך ההסכמה כבר הוגדר, אפשר לדלג על השלבים הבאים).

לוחצים על 'Configure consent screen' (הגדרת מסך ההסכמה) שבו בוחרים באפשרות 'חיצוני' אפליקציה (או 'פנימי' אם אתם לקוחות Google Workspace [לשעבר Google Workspace]):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

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

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

בשלב הזה רק צריך שם של אפליקציה, אז בחרו מישהו שמשקף את ה-Codelab שאתם עושים ואז לוחצים על Save (שמירה).

יצירת מזהה לקוח ב-OAuth (אימות חשבון משתמש)

עכשיו חוזרים לכרטיסייה Credentials כדי ליצור מזהה לקוח OAuth2. כאן אפשר למצוא מגוון מזהי לקוח ב-OAuth שאפשר ליצור:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

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

המערכת שומרת את פרטי הכניסה שלך

  1. תופיע תיבת דו-שיח עם פרטי הכניסה החדשים. לוחצים על OK כדי לסגור

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. חוזרים לדף Credentials, גוללים למטה לקטע 'מזהי לקוחות של OAuth2' מוצאים את סמל ההורדה aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ ולוחצים עליו בקצה השמאלי של מזהה הלקוח החדש שיצרתם. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. תיפתח תיבת דו-שיח לשמירת קובץ בשם client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, כנראה בתיקייה הורדות. מומלץ לקצר את השם לשם קל יותר, כמו client_secret.json (כלומר, השימוש של האפליקציה לדוגמה), ואז לשמור אותו בספרייה או בתיקייה שבה תיצרו את האפליקציה לדוגמה ב-Codelab הזה.

סיכום

עם פרטי הכניסה שברשותכם, אתם מוכנים לגשת ל-Drive API מהאפליקציה שלכם. חשוב לזכור שהמטרה של מזהה הלקוח ב-OAuth היא שהמשתמשים שלכם יצטרכו להעניק לאפליקציה שלכם הרשאה לגשת לנתונים שלהם ב-Google Drive.

הערה: פרטים נוספים על יצירת פרויקטים, הפעלת ממשקי API והשגת פרטי כניסה, באופן ידני, כלומר ללא שימוש ב'אשף' שלמעלה, זמין לאחר הסיום של ה-Codelab הזה למחקר נוסף.

8.‏ הצגת הקבצים מ-Drive אפליקציית תיקיות

גם אם בסביבת הפיתוח המקומית וגם ב-Cloud Shell נמצא באותה ספרייה שבה נמצא קובץ פרטי הכניסה של client_id.json, צריך ליצור קובץ Python חדש בשם drive_list.py ולהוסיף את שורות הקוד הבאות:

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
   
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
   
creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
   
print(f['name'], f['mimeType'])

מבנה האפליקציה

האפליקציה כוללת שלושה חלקים עיקריים:

  1. מתבצע ייבוא של Python כדי להוסיף פונקציונליות של הספרייה
  2. קבלת פרטי כניסה לאפליקציה
  3. אחזור קובץ שמות של תיקיות סוגי MIME ב-Google Drive של המשתמש להציג

הערה: אחרי שה-Codelab הזה יסיים מחקר מפורט, תהיה לך אפשרות להתעמק בקוד ולעיין בהסבר מפורט.

הרצת האפליקציה

נותנים לקובץ שם כמו drive_list.py. בפעם הראשונה שתפעילו את הסקריפט, לא תהיה לו הרשאה לגשת לקבצים של המשתמש ב-Drive (שלכם). הפלט נראה כך כשהביצוע מושהה:

$ python3 ./drive_list.py
/usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:
  https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

מסביבת פיתוח מקומית

הסקריפט של שורת הפקודה מושהה כשחלון הדפדפן נפתח ומציג לכם את תיבת הדו-שיח להרשאות OAuth2:

c2648f37bcb7a0c1.png

כאן האפליקציה מבקשת מהמשתמש את ההרשאות שהקוד מבקש (באמצעות המשתנה SCOPES). במקרה הזה, מדובר באפשרות להציג את המטא-נתונים של הקובץ ב-Google Drive של המשתמש. כן, היקפי ההרשאות של הקוד מופיעים כמזהי URI, אבל הם מתורגמים לשפה שצוינה על ידי הלוקאל בחלון הדו-שיח של התהליך ב-OAuth2. המשתמש חייב לתת הרשאה מפורשת להרשאות המבוקשות. אחרת, יש לבצע את 'תהליך ההרצה' חלק מהקוד יגרום לחריגה והסקריפט לא ימשיך.

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

מ-Cloud Shell

אם לא שימו לב והפעלתם את התוכנה ב-Cloud Shell, אף חלון דפדפן לא נפתח ונתקע. מבינים שהודעת האבחון שבתחתית מיועדת לכם...

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

כשמריצים אותה בצורה הזו, מקבלים את הפלט הבא:

$ python3 drive_list.py --noauth_local_webserver
/usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Go to the following link in your browser:

  https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

Enter verification code:

פועלים לפי ההוראות ועוברים לכרטיסייה אחרת בדפדפן עם אותה כתובת URL, כדי ליהנות מחוויה כמעט זהה לזו שתואר קודם לגבי סביבות פיתוח מקומיות. ההבדל העיקרי הוא שבסוף מופיע מסך אחד נוסף עם קוד האימות שצריך להזין ב-Cloud Shell:

f6da2c335fb7c6a.png

גוזרים ומדביקים את הקוד הזה בחלון הטרמינל.

סיכום

אחרי שהמשתמש ילחץ על אישור או על קוד האימות יודבק בהנחיה, האפליקציה (תמשיך) תפעל, ולכן צריך לצפות בפלט שכולל קבצים/תיקיות ב-Drive וסוגי ה-MIME שלהם. הנה דוגמה מאחד מחשבונות הבדיקה שלנו:

$ python3 ./drive_list.py
Travel expenses application/vnd.google-apps.spreadsheet
Gmail Add-ons codelab application/vnd.google-apps.script
Google Workspace Developer Intro application/vnd.google-apps.presentation
Baseball Sheets application/vnd.google-apps.folder
My Resume application/vnd.google-apps.document
  . . .

בביצוע רציפות תראו שכבר לא מוצגת לכם בקשה להרשאה (כי היא נשמרה במטמון על ידי ספריות האימות), ואתם עוברים ישירות לפלט. לא מלהיב לראות את המסמכים שלך במסוף בפעם הראשונה? אנחנו חושבים!

9.‏ סיכום

עכשיו אתם מוכנים ללמוד תכונות נוספות על Drive API או להתנסות בפיצ'רים אחרים של Google Workspace (Gmail, Google Docs, Sheets, Slides, יומן) וממשקי API אחרים של Google (מפות, Analytics, YouTube וכו'). כל הכבוד! הגעת לסוף הדרך.

הקוד שמוצג ב-Codelab הזה זמין גם במאגר שלו ב-GitHub בכתובת github.com/googlecodelabs/gsuite-apis-intro. (אנחנו שואפים לסנכרן את ה-Codelab הזה עם המאגר). שנמשיך הלאה? בהמשך מוצגים משאבים שונים שבעזרתם תוכלו להתעמק יותר בתוכן שנלמד ב-Codelab הזה, או אם תרצו להתאמץ יותר ולמצוא דרכים אחרות לגשת לטכנולוגיות של Google באופן פרוגרמטי.

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

מחקר נוסף

אחרי שתרגלתם כבר את השימוש ב-Drive API, ריכזנו כאן כמה תרגילים מומלצים שיעזרו לכם לשפר את המיומנויות שלכם:

  1. קובצי ZIP: כותבים אפליקציה שמגבה כמה ארכיוני ZIP ב-Drive ומבטלים את הדחיסה שלהם תוך כדי תנועה, כך שכל שם קובץ ZIP יהיה שם התיקייה שאליה הקבצים יועברו. קרדיט נוסף: תמיכה בארכיוני ZIP רקורסיביים בתוך קובצי ZIP אחרים, כאשר תיקיות Drive שמוטמעות בתיקיות אחרות. אם אתם מוותרים, כדאי לעיין באפליקציה לדוגמה של Node.js.
  2. אלבומי תמונות: אפשר לכתוב את ההתחלה של הכלי ליצירת אלבומי תמונות שמעלה מספר תמונות ל-Google Drive ולסדר אותן בתיקיות נפרדות לפי חותמת זמן למיקום גיאוגרפי. קרדיט נוסף: מצאו ספריית קוד פתוח לתיקון תמונות והוסיפו את כל התמונות בכל תיקייה כדי לייצג אירועים שחוויתם בהם (טיול, ארוחת ערב וכו').
  3. היכרות עם GCP: כתיבת אפליקציה שמחברת בין Google Workspace לבין Google Cloud Platform (GCP) יחד. לכתוב כלי שמשלים קובצי תמונה מ-Google Drive אל Google Cloud Storage (GCS), עוד 'אחסון קבצים בענן' לפתרון הבעיה. תאמין או לא, אבל השימוש ב-GCS יהיה פשוט יותר מ-Drive בגלל ספריות הלקוח המתקדמות שלו.
  4. ניתוח ו הרשומה: הרחבת הפתרון שלכם למס' 3 על ידי ניתוח של כל תמונה שמגובה על ידי העברתה אל Google Cloud Vision API וקבלת "התוויות" המובילות (3, 5, 10) של מה שה-API רואה בתמונות האלה. לכל תמונה, כותבים שורה בגיליון אלקטרוני ב-Google Sheets שמכילה את הניתוח מ-Cloud Vision ואת המיקום המגובה ב-GCS. אם החלטתם להפסיק, תוכלו להיעזר בקוד Lab הזה של Python.

10.‏ משאבים נוספים

מאמרי עזרה

חדשות ו עדכונים

Codelabs אחרים

רמה למתחילים

רמה בינונית

מסננים מתקדמים

אפליקציות עזר

11.‏ *הסבר מפורט על האפליקציה

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

מתבצע ייבוא של Python כדי להוסיף פונקציונליות של הספרייה

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
  • ההצהרה הראשונה import מאפשרת לקוד הזה לרוץ ב-Python 2. אפשר להסיר אותו לגמרי אם משתמשים רק ב-Python 3.
  • אחת הקווים המנחים לסגנון של Python היא להפריד בין ייבוא הספרייה הרגילה לבין ייבוא מודול של צד שלישי – לכן נועדה השורה הריקה.
  • בשלושת השיעורים הבאים מייבאים את הכיתות מספריית הלקוח של Google APIs... כולנו צריכים את כולם כדי לכתוב את האפליקציה הזו. בקצרה, אלה הפעולות שהם מבצעים:
  • googleapiclient בתהליך התחברות ל-Google APIs
  • השדה httplib2 מספק לקוח HTTP שבו האפליקציה יכולה להשתמש.
  • oauth2client עוזר לנו לנהל פרטי כניסה של OAuth2

הרשאה והשגת פרטי כניסה לאפליקציה

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
  • האפליקציה SCOPES היא ההרשאות שאפליקציה תבקש מהמשתמש שמפעיל אותה. כדי להגן על נתוני המשתמשים, אפליקציות לא יכולות לפעול בלי לקבל הרשאה
  • השיטה המומלצת היא להשתמש בהרשאות המגבילות ביותר שהאפליקציה צריכה כדי לפעול. למה?
  • נכון שזה מעצבן כשאפליקציה מבקשת קבוצת הרשאות גדולה כשמתקינים או מפעילים אותה? נחשו מה? עכשיו אתם בצד השני של המטבע, ומבקשים מהמשתמשים את כל ההרשאות האלה. שימוש בהיקפים מגבילים יותר משפר את החוויה של התקנת האפליקציה שלך כי ביקשת פחות גישה.
  • רוב ההיקפים נראים כמו כתובות URL ארוכות, והיקף המטא-נתונים של Drive לא יוצא מן הכלל.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
  • נדרש אסימון כדי שאפליקציות יוכלו לתקשר עם השרתים של Google. אסימונים תקפים שחוזרים מ-Google יישמרו בקובץ אחסון האסימון, storage.json. אם לא תשמור את האסימונים האלה, יהיה עליך לאשר מחדש את האפליקציה בכל פעם שתפעיל אותה.
store = file.Storage('storage.json')
  • האפליקציה הזו בודקת קודם אם יש לנו פרטי כניסה תקפים שכבר שמורים במערכת (אפשר לעיין בתנאי ההצהרה if).
creds = store.get()
if not creds or creds.invalid:
  • אם אין לכם פרטי כניסה או שהתוקף שלהם פג, צריך ליצור תהליך הרשאה חדש [דרך oauth2client.client.flow_from_clientsecrets()] ממזהה הלקוח ב-OAuth וגם בקובץ client_id.json שהורדת].
if not creds or creds.invalid:
    flow
= client.flow_from_clientsecrets('client_id.json', SCOPES)
  • אחרי שיש תהליך לאפליקציה, הוא צריך לפעול כדי להציג את מסך ההרשאות של OAuth2 למשתמש [דרך oauth2client.tools.run_flow()], כפי שמתואר למעלה ומוצג למעלה.
    creds = tools.run_flow(flow, store)
  • לחיצה על אישור מבטאת את הסכמת המשתמשים לכך שהאפליקציה שלך תיגש למטא-נתונים של הקבצים שלהם ב-Google Drive, ושרתי Google מחזירים אסימונים כדי לגשת ל-API. הם מוחזרים בתור creds ונשמרים במטמון בקובץ storage.json.
  • בשלב הזה, לאפליקציה שלך יש עכשיו פרטי כניסה תקינים לביצוע קריאות ל-API. קריאה ל-googleapiclient.discovery.build() יוצרת נקודת קצה (endpoint) של שירות ל-API שבו אתה משתמש.
  • כדי להשתמש ב-build(), יש להעביר את שם ה-API ('drive') & הגרסה הרצויה (כרגע 'v3').
  • הפרמטר הסופי הוא לקוח HTTP שאפשר להשתמש בו לקריאות מוצפנות ל-API.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

אחזור ו- להציג את 100 הקבצים/התיקיות הראשונים ב-Drive MIMEtypes)

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])
  • שורת הקוד הבאה מפעילה את ה-method list() באוסף files() עבור Drive API כדי ליצור את הבקשה, והיא מופעלת מיד באמצעות execute(). מוחזר dict Python שממנו אנחנו מבקשים את המפתח 'files' כדי לקבל את קובץ ה-100 שמות של תיקיות מ-Google Drive של המשתמש (או פחות, אם יש לכם פחות קבצים).
  • למה דווקא 100? זו ברירת המחדל מ-DRIVE.files().list(). אם רוצים לשנות את המספר הזה, למשל 10 קבצים או 1000, צריך להוסיף את הפרמטר pageSize לבקשה: DRIVE.files().list(pageSize=10). אפשרויות נוספות זמינות במאמרי העזרה.
  • החלק האחרון של הסקריפט עובר בלופ דרך כל קובץ ומציג את שמם סוגי MIME של הקבצים.

עכשיו כתבת את האפליקציה הראשונה שלך שמשתמשת ב-API ל-REST של Google... כל הכבוד! מלבד ייבוא הקוד וקוד ההרשאה, הסקריפט הזה הוא למעשה רק כמה שורות קוד (מה שרואים למעלה). רוב ממשקי ה-API של Google פועלים באופן דומה, וצריך ליצור נקודות קצה (endpoints) של שירות לכל אחת מהן שבה רוצים להשתמש.

שימוש ביותר מ-Google API אחד באפליקציה

כן, אפשר להשתמש ביותר מממשק API אחד באותה האפליקציה. הנה קטע קוד Python לאפליקציה שמשתמשת שוב באותו לקוח HTTP ויוצרת נקודות קצה של שירות ל-שלושה ממשקי API של Google (כן, גם עם 3 רכיבי SCOPES שונים):

SCOPES = (
   
'https://www.googleapis.com/auth/drive',
   
'https://www.googleapis.com/auth/spreadsheets.readonly',
   
'https://www.googleapis.com/auth/presentations',
)

   
. . .

HTTP  
= creds.authorize(Http())
DRIVE  
= discovery.build('drive',  'v3', http=HTTP)
SHEETS
= discovery.build('sheets', 'v4', http=HTTP)
SLIDES
= discovery.build('slides', 'v1', http=HTTP)

נניח שהקוד הזה יכול להיות חלק מאפליקציה שיוצרת כמה מצגות (API של Slides) על סמך נתונים של גיליונות אלקטרוניים (API של Sheets), ומשתמשת בתבנית שקף שמועתקת (Drive API) לכל מצגת שנוצרת. אמנם אפליקציה כזו לא קיימת, אבל תוכלו ליצור משהו דומה באמצעות שתי דוגמאות קיימות שצוות Google Workspace יצר כאבני בניין:

  • החלפת הטקסט ו- תמונות בשקפים ( פוסט בבלוג וסרטון) — משתמש ב-Drive API כדי להעתיק תבנית של תבנית שקף, ואז משתמש ב-API של Slides כדי לשנות את הטקסט placeholders של תמונות
  • יצירת שקפים מהנתונים של גיליון אלקטרוני ( פוסט בבלוג וסרטון) — קריאת נתונים מגיליון אלקטרוני (API של Sheets) ויצירת שקפים (API של Slides) על סמך הנתונים האלה

האתגר שלך: לבנות את האפליקציה!

12.‏ *שימוש מתקדם ב-devconsole

בחלק האופציונלי הזה נסביר איך ליצור פרויקטים ב-devconsole, להפעיל ממשקי API ולהשיג פרטי כניסה – בלי להשתמש באשף כמו שמתואר למעלה ב-Codelab. האפשרות הזו מתאימה למשתמשים ברמה בינונית שרוצים לדעת איך לעשות את זה ידנית או שרוצים ללמוד איך לעשות זאת.

ציון הפרויקט במסוף Cloud

בכל פעם שאתם כותבים אפליקציה באמצעות Google APIs, צריך להיות לכם פרויקט. אפשר להשתמש שוב בפרויקט קיים או ליצור פרויקט חדש. זה קורה במסוף Cloud. חלק מ-Codelabs מספקים קישור קסם (למשל, כמו אשף ההגדרה) שיעזור לכם להתחיל במהירות, וכך מדלגים על רבים מהשלבים הנדרשים. אבל לא כולם, אז אלה נועדו להיות הוראות כלליות ליצירת פרויקטים.

אתם יכולים ליצור פרויקטים מרוב המסכים במסוף Cloud, כל עוד התחברתם באמצעות פרטי הכניסה ל-Google ורואים תפריט נפתח של פרויקט בחלק העליון של המסוף. רוב צילומי המסך כאן מגיעים מ-API Manager (מנהל ה-API), שנקרא גם Developer Console (ניתן להגיע בקלות על ידי לחיצה על "מנהל API" בתפריט הניווט השמאלי או הפניה ישירה של הדפדפן אל console.developers.google.com).

  1. אם עדיין לא יצרתם פרויקטים, תועברו אל...
  2. הדף מרכז שליטה: Gwkk2zcSPOHlRzCGsmBDqfdsEMopOgJyJzh6TunpVFOP3R7bN0-iGt81mNueGxoAei6wCqgQBENsamw3v4ozZJtQgKva6v_90dYJ-rvQjUn9U89avlG1tepDYT9HHjZmYixLD0hACQ
  3. בדף ספרייה: NqfejNuo6fJfiTXERiCNAFTnno1JGgudf7M2zVyM9DzXP4E6ruoVxHvFQOPW-HFL5SZvm-WohzPTf7njBS9VCwuu4XnwhQ7CB83tNkH0jsYEx31hO6UMBVHPJS1BMjidg5kh-c7MEw
  4. או דף ריק לחלוטין: LcJ-wgOFlYa9uZm46fwUkfFTkXIcbhuk607KDaCz8_8NM09RHblz6T5JoWhH7uwSE2q6hKW9XnlutzUqd8yvRAEXFzQjqNNTuscj19yKGkMjbPixeUB8-F1y4Tz7eCpeOEzBUw70yw אם זה קורה גם בדף השלישי, פשוט רענן את הדפדפן כדי לעבור לדף ספרייה.
  5. בין אם נמצאים בדף Dashboard (לוח בקרה) או Library (ספרייה), צריך ללחוץ על בורר הפרויקטים בראש הדף: 3f5REVgveKDcJ8wG2C9gduFBftJb6RNtdQQJ79vwFmQCMU8_t_vxja8jPGIK-ZrpjSqGkRkY4k02xth-7FWNPj4GZUdcBmKQe97LporGaLvwIFzzR5wtH5mEEoA1a74_fnrh9YAqqg
  6. בשלב הבא תוצג תיבת הדו-שיח של הבורר. לוחצים על הסמל '+'. בצד שמאל כדי ליצור פרויקט חדש: jNzs1bp1eWkpJT3S3AGTm9ejYT2mB3rEd1QajOhO0AR3YxcwaCcF4WlMzdmgOFtlIPQfGEMUysM6m7r89_Fc0Dyy--mjPhCEKdLRZjaozLOvoZOzKtIxdMoWFHCVc2N1K-2HES_k4Q
  7. אחרי שלוחצים על הסמל '+', מופיע הדף פרויקט חדש. כברירת מחדל, כל חשבונות המשתמשים מקבלים 12 פרויקטים. לפני יצירת הפרויקט הראשון, עליך לאשר את התנאים וההגבלות של Google APIs: bCB0sQ6k5nfrajlhc-S61MVzyYYBqu6XVNKeRDzXNvKZUNlSeVJSLbkP8sPNi5A-5hWIFzhsQ5R_ER9BBb2bE_B02c1neY2iO5SSe6XDFldppsXbkWm63-0l3ugtSDQS-TeM1d773w

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

Pj31ZKoAAnw_JiSz8io7e4yC2Xh3voETusvePf0DS64IMB4aVy9CtANg2r-2NgPxLjbqcfd-Vs33ZNdN7Diz7sZo3j-MKS83SuNXlhGT8ivdhpIvizP1dsYeK1MBQ4HlDZA5aQkIhg 5. אם יצרת פרויקט אחד לפחות בעבר, לאחר ההתחברות תועבר למרכז השליטה של הפרויקט האחרון שעבדת עליו. בשלב הבא, יוצרים פרויקט חדש, כשבוחרים באפשרות Select a project > +. 6. לאחר יצירת הפרויקט החדש, תהיה לך אפשרות לחזור לדף מרכז שליטה: ana4q1H1Q8KNTBEVb62Cc6NVA8VZbxb6BLgf4-bLqLV-p7n8UWv3WW3FN-49CE0x1kARav3pelxOBwNuUDELmitMRFhUNXuaw9-CH9DO3Lek_ifnaI3ZsxSy67Z1UsBO95SPFqlf8Q

יצרתם פרויקט בהצלחה ואתם מוכנים להמשיך בתהליך על ידי בחירת ממשקי ה-API שבהם אתם רוצים להשתמש בפרויקט.

הפעלת Google APIs

כדי להתחיל להשתמש ב-Google APIs, צריך להפעיל אותם. בדוגמה הבאה אפשר לראות מה צריך לעשות כדי להפעיל את Cloud Vision API. ב-Codelab הזה, יכול להיות שאתם משתמשים בממשק API אחד או יותר, וצריך לבצע פעולות דומות כדי להפעיל אותם לפני השימוש.

מ-Cloud Shell

ב-Cloud Shell, אפשר להפעיל את ה-API באמצעות הפקודה הבאה:

gcloud services enable vision.googleapis.com

ממסוף Cloud

אפשר גם להפעיל את Vision API דרך מנהל ה-API. במסוף Cloud, נכנסים אל API Manager ובוחרים באפשרות Library (ספרייה).

mg03by3QV6kco0rVVV_8IA6VobAoMG4Yoyl-PofNM0dHK8IcoDmpoLUwWeiKFFjpxHWlS1td5-0n7kNkfqHVhSsTSW_hUMvRu3D72g3LCFb7u4v4bla_Z4XyonTVK8PpigMLJcE01g

בסרגל החיפוש, מתחילים להקליד 'חזון', ואז לבחור Vision API כשמופיע. זה עשוי להיראות בערך כך בזמן ההקלדה:

B6fWWsVhymufgQx6oGIq4sgukK6JQ1VoguVOrSNf_anQb6Cv6RTLtsjx5Qdeu3-uO8-8PyqwZLYdDDjYW5o56R47cnsd_88RKTMqNkpFeDESW2hmBM_7FK2UAMz1_216yXERYSp_JA

בוחרים את Cloud Vision API כדי לפתוח את תיבת הדו-שיח שמופיעה למטה, ואז לוחצים על Enable (הפעלה). לחצן:

D-MONPLi0UWH6Dp607Dod6JF-LJQZIiUQEPQNKM4Y0mSt09KfipbeeXRAE6cokArBYTfL9VQoONc4L0jlnsUYLsNytQIPfSKr9lCDrXmrrx-1w64LeWWa-byDxcyYWZdCI0mAcVzBw

עלות

בהרבה ממשקי API של Google אפשר להשתמש ללא עמלות, אבל השימוש ב-GCP (מוצרים וממשקי API) הוא לא בחינם. כשמפעילים את Vision API (כפי שמתואר למעלה), יכול להיות שתתבקשו ליצור חשבון פעיל לחיוב. המשתמש צריך להפנות אל פרטי התמחור של Vision API לפני ההפעלה. חשוב לזכור שבמוצרים מסוימים של Google Cloud Platform (GCP) התכונה 'חינם תמיד' tier שעליו עליכם לחרוג כדי לצבור חיוב. למטרות ה-Codelab, כל קריאה ל-Vision API נספרת במסגרת התוכנית ללא תשלום, וכל עוד לא חורגים מהמגבלות באופן מצטבר (במהלך כל חודש), לא אמורים לצבור חיובים.

בחלק מממשקי ה-API של Google, כלומר השימוש ב-Google Workspace כולל מינוי חודשי, כך שאין חיוב ישיר על השימוש בממשקי ה-API של Gmail, Google Drive, יומן Google, Docs, Sheets ו-Slides, למשל. מוצרים שונים של Google מחויבים בצורה שונה, לכן חשוב לעיין במסמכים של ה-API לגבי המידע הזה.

סיכום

ב-Codelab הזה צריך להפעיל רק את Google Drive API, לכן צריך לבצע את ההוראות שלמעלה ולחפש את "Drive". ממשיכים קדימה אחרי ההפעלה.

אישור בקשות API (הרשאת משתמש)

מבוא להרשאה (בתוספת אימות חלק)

כדי לשלוח בקשות לממשקי ה-API, האפליקציה שלכם צריכה את ההרשאה המתאימה. אימות, מילה דומה, מתאר את פרטי הכניסה – אתם מאמתים את הזהות כשאתם מתחברים לחשבון Google באמצעות התחברות סיסמה. אחרי האימות, השלב הבא הוא אם אתם מורשים לגשת לנתונים, כמו קובצי blob ב-Cloud Storage או קבצים אישיים של משתמש ב-Google Drive, או אם לקוד שלכם.

Google APIs תומכים בכמה סוגי הרשאות, אבל הסוג הנפוץ ביותר בקרב משתמשי Google Workspace API הוא הרשאת משתמש, כי האפליקציה לדוגמה ב-Codelab הזו ניגשת לנתונים ששייכים למשתמשי קצה. משתמשי הקצה האלה חייבים לתת לאפליקציה שלכם הרשאת גישה לנתונים שלהם. המשמעות היא שהקוד צריך לקבל פרטי כניסה מסוג OAuth2 של חשבון משתמש.

כדי לקבל פרטי כניסה של OAuth2 להרשאות משתמש, חוזרים למנהל ה-API ובוחרים באפשרות 'פרטי כניסה' שבתפריט הניווט הימני:

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

שם תראו את כל פרטי הכניסה בשלושה קטעים נפרדים:

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

הראשונה היא למפתחות API, למזהי לקוח ב-OAuth 2.0 ולחשבונות שירות OAuth2 האחרונים – אנחנו משתמשים בזה שנמצא באמצע.

יצירת פרטי כניסה

בחלק העליון של הדף Credentials (פרטי כניסה), לוחצים על הלחצן + Create Credentials (+ יצירת פרטי כניסה), ואז תופיע תיבת דו-שיח שבה בוחרים באפשרות OAuth client ID:

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

במסך הבא יש שתי פעולות: הגדרת ההרשאה 'מסך ההסכמה' באפליקציה ובחירת סוג האפליקציה:

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

אם לא הגדרתם מסך הסכמה, האזהרה תופיע במסוף ויהיה עליכם לעשות זאת עכשיו. (אם מסך ההסכמה כבר הוגדר, אפשר לדלג על השלבים הבאים).

לוחצים על 'Configure consent screen' (הגדרת מסך ההסכמה) שבו בוחרים באפשרות 'חיצוני' אפליקציה (או 'פנימית' ללקוחות Google Workspace):

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

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

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

בשלב הזה רק צריך שם של אפליקציה, אז בחרו מישהו שמשקף את ה-Codelab שאתם עושים ואז לוחצים על Save (שמירה).

יצירת מזהה לקוח ב-OAuth (אימות חשבון משתמש)

עכשיו חוזרים לכרטיסייה Credentials כדי ליצור מזהה לקוח OAuth2. כאן אפשר למצוא מגוון מזהי לקוח ב-OAuth שאפשר ליצור:

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

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

המערכת שומרת את פרטי הכניסה שלך

  1. תופיע תיבת דו-שיח עם פרטי הכניסה החדשים. לוחצים על OK כדי לסגור

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. חוזרים לדף Credentials, גוללים למטה לקטע 'מזהי לקוחות של OAuth2' מוצאים את סמל ההורדה aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ ולוחצים עליו בקצה השמאלי של מזהה הלקוח החדש שיצרתם. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. תיפתח תיבת דו-שיח לשמירת קובץ בשם client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json, כנראה בתיקייה הורדות. מומלץ לקצר את השם לשם קל יותר, כמו client_secret.json (כלומר, השימוש של האפליקציה לדוגמה), ואז לשמור אותו בספרייה או בתיקייה שבה תיצרו את האפליקציה לדוגמה ב-Codelab הזה.