דוגמאות קוד JavaScript

בדוגמת הקוד שבהמשך נעשה שימוש בספריית הלקוח של Google APIs ל-JavaScript. אפשר להוריד את הדוגמה הזו מהתיקייה javascript במאגר דוגמאות הקוד של ממשקי ה-API של YouTube ב-GitHub.

הקוד מבקש מהמשתמש הרשאה לגשת להיקף https://www.googleapis.com/auth/yt-analytics.readonly.

return gapi.auth2.getAuthInstance()     .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})     ...

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

אחזור נתונים סטטיסטיים יומיים של הערוץ

בדוגמה הזו, מתבצעת קריאה ל-YouTube Analytics API כדי לאחזר נתונים של צפיות יומיות ומדדים אחרים בערוץ של המשתמש שנתן הרשאה, לשנת 2017. בדוגמה הזו נעשה שימוש בספריית הלקוח של Google APIs JavaScript.

הגדרת פרטי הרשאה

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

  1. יוצרים פרויקט ב-Google API Console או בוחרים פרויקט קיים.
  2. מפעילים את YouTube Analytics API בפרויקט.
  3. בחלק העליון של הדף פרטי כניסה, בוחרים בכרטיסייה מסך בקשת הסכמה ל-OAuth. בוחרים כתובת אימייל, מזינים שם מוצר אם הוא עדיין לא מוגדר ולוחצים על כפתור השמירה.
  4. בדף Credentials (פרטי כניסה), לוחצים על הלחצן Create credentials (יצירת פרטי כניסה) ובוחרים באפשרות Oauth client ID (מזהה לקוח OAuth).
  5. בוחרים את סוג האפליקציה Web application.
  6. בשדה 'מקורות JavaScript מורשים', מזינים את כתובת ה-URL שממנה יוגש קוד לדוגמה. לדוגמה, אפשר להשתמש ב-http://localhost:8000 או ב-http://yourserver.example.com. אפשר להשאיר את השדה Authorized redirect URIs (כתובות URI מורשות להפניה אוטומטית) ריק.
  7. לוחצים על הלחצן יצירה כדי לסיים את יצירת פרטי הכניסה.
  8. לפני שסוגרים את תיבת הדו-שיח, מעתיקים את מזהה הלקוח, שצריך להוסיף לדוגמת הקוד.

יצירת עותק מקומי של הדוגמה

לאחר מכן, שומרים את הדוגמה בקובץ מקומי. בדוגמה, מחפשים את השורה הבאה ומחליפים את YOUR_CLIENT_ID במזהה הלקוח שקיבלתם כשקבעתם את פרטי ההרשאה.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

הרצת הקוד

עכשיו אפשר לבדוק את הדוגמה בפועל:

  1. פותחים את הקובץ המקומי מדפדפן אינטרנט ופותחים את מסוף הניפוי באגים בדפדפן. יופיע דף עם שני לחצנים.
  2. לוחצים על הלחצן authorize and load (אישור וטעינה) כדי להפעיל את תהליך אישור המשתמש. אם תאשרו לאפליקציה לאחזר את נתוני הערוץ, השורות הבאות יודפסו במסוף בדפדפן:
     Sign-in successful GAPI client loaded for API
  3. אם מוצגת הודעת שגיאה במקום השורות שלמעלה, צריך לוודא שאתם טוענים את הסקריפט מכתובת ה-URI המורשית להפניה אוטומטית שהגדרתם לפרויקט, וששמתם את מזהה הלקוח בקוד כמו שמתואר למעלה.
  4. לוחצים על הלחצן execute כדי לשלוח קריאה ל-API. אובייקט response אמור להופיע במסוף בדפדפן. באובייקט הזה, המאפיין result ממופה לאובייקט שמכיל את נתוני ה-API.

קוד לדוגמה

<script src="https://apis.google.com/js/api.js"></script> <script>   function authenticate() {     return gapi.auth2.getAuthInstance()         .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})         .then(function() { console.log("Sign-in successful"); },               function(err) { console.error("Error signing in", err); });   }   function loadClient() {     return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")         .then(function() { console.log("GAPI client loaded for API"); },               function(err) { console.error("Error loading GAPI client for API", err); });   }   // Make sure the client is loaded and sign-in is complete before calling this method.   function execute() {     return gapi.client.youtubeAnalytics.reports.query({       "ids": "channel==MINE",       "startDate": "2017-01-01",       "endDate": "2017-12-31",       "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",       "dimensions": "day",       "sort": "day"     })         .then(function(response) {                 // Handle the results here (response.result has the parsed body).                 console.log("Response", response);               },               function(err) { console.error("Execute error", err); });   }   gapi.load("client:auth2", function() {     gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});   }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>