משלימים את השלבים שמתוארים בהמשך הדף הזה, ותוך חמש דקות בערך יהיה לכם יישום פשוט של שורת פקודה ב-Ruby ששולח בקשות אל YouTube Data API.
קוד הדוגמה שמופיע במדריך הזה מאחזר את משאבchannel
של ערוץ GoogleDevelopers ב-YouTube ומדפיס מידע בסיסי מהמשאב הזה.
דרישות מוקדמות
כדי להפעיל את המדריך למתחילים הזה, אתם צריכים:
- Ruby 2.0 ואילך.
- גישה לאינטרנט ולדפדפן אינטרנט.
- חשבון Google.
שלב 1: מפעילים את YouTube Data API
-
משתמשים באשף הזה כדי ליצור או לבחור פרויקט ב-Google Developers Console ולהפעיל את ה-API באופן אוטומטי. לוחצים על המשך ואז על Go to credentials (מעבר אל פרטי הכניסה).
-
בדף יצירת פרטי כניסה, לוחצים על הלחצן ביטול.
-
בחלק העליון של הדף, לוחצים על הכרטיסייה מסך ההסכמה של OAuth. בוחרים כתובת אימייל, מזינים שם מוצר אם הוא לא מוגדר כבר ולוחצים על הלחצן שמירה.
-
בכרטיסייה Credentials לוחצים על הלחצן Create credentials ובוחרים באפשרות OAuth client ID.
-
בוחרים בסוג האפליקציה Other, מזינים את השם YouTube Data API Quickstart ולוחצים על הלחצן Create.
-
לוחצים על אישור כדי לסגור את תיבת הדו-שיח שמופיעה.
-
לוחצים על הלחצן
(הורדת קובץ JSON) משמאל למזהה הלקוח. -
מעבירים את הקובץ שהורדתם לספריית העבודה ומשנים את השם שלו ל-
client_secret.json
.
שלב 2: התקנת ספריית הלקוח של Google
מריצים את הפקודה הבאה כדי להתקין את הספרייה:
gem install google-api-client
אפשרויות התקנה חלופיות מפורטות בדף ההתקנה של הספרייה.
שלב 3: מגדירים את הדוגמה
יוצרים קובץ בשם quickstart.rb
בספריית העבודה ומעתיקים אליו את הקוד הבא:
# Sample Ruby code for user authorization require 'rubygems' gem 'google-api-client', '>0.7' require 'google/apis' require 'google/apis/youtube_v3' require 'googleauth' require 'googleauth/stores/file_token_store' require 'fileutils' require 'json' # REPLACE WITH VALID REDIRECT_URI FOR YOUR CLIENT REDIRECT_URI = 'http://localhost' APPLICATION_NAME = 'YouTube Data API Ruby Tests' # REPLACE WITH NAME/LOCATION OF YOUR client_secrets.json FILE CLIENT_SECRETS_PATH = 'client_secret.json' # REPLACE FINAL ARGUMENT WITH FILE WHERE CREDENTIALS WILL BE STORED CREDENTIALS_PATH = File.join(Dir.home, '.credentials', "youtube-quickstart-ruby-credentials.yaml") # SCOPE FOR WHICH THIS SCRIPT REQUESTS AUTHORIZATION SCOPE = Google::Apis::YoutubeV3::AUTH_YOUTUBE_READONLY def authorize FileUtils.mkdir_p(File.dirname(CREDENTIALS_PATH)) client_id = Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH) token_store = Google::Auth::Stores::FileTokenStore.new(file: CREDENTIALS_PATH) authorizer = Google::Auth::UserAuthorizer.new( client_id, SCOPE, token_store) user_id = 'default' credentials = authorizer.get_credentials(user_id) if credentials.nil? url = authorizer.get_authorization_url(base_url: REDIRECT_URI) puts "Open the following URL in the browser and enter the " + "resulting code after authorization" puts url code = gets credentials = authorizer.get_and_store_credentials_from_code( user_id: user_id, code: code, base_url: REDIRECT_URI) end credentials end # Initialize the API service = Google::Apis::YoutubeV3::YouTubeService.new service.client_options.application_name = APPLICATION_NAME service.authorization = authorize # Sample ruby code for channels.list def channels_list_by_username(service, part, **params) response = service.list_channels(part, params).to_json item = JSON.parse(response).fetch("items")[0] puts ("This channel's ID is #{item.fetch("id")}. " + "Its title is '#{item.fetch("snippet").fetch("title")}', and it has " + "#{item.fetch("statistics").fetch("viewCount")} views.") end channels_list_by_username(service, 'snippet,contentDetails,statistics', for_username: 'GoogleDevelopers')
שלב 4: מריצים את הדוגמה
מריצים את הדוגמה באמצעות הפקודה הבאה:
ruby quickstart.rb
בפעם הראשונה שמריצים את הדוגמה, מוצגת בקשה לאישור הגישה:
הדוגמה מנסה לפתוח חלון או כרטיסייה חדשים בדפדפן ברירת המחדל. אם זה לא עובד, מעתיקים את כתובת ה-URL מהמסוף ופותחים אותה ידנית בדפדפן.
אם אתם לא מחוברים לחשבון Google, תתבקשו להתחבר. אם אתם מחוברים לכמה חשבונות Google, תתבקשו לבחור חשבון אחד שבו תרצו להשתמש לצורך ההרשאה.
- לוחצים על הלחצן אישור.
מעתיקים את הקוד שקיבלתם, מדביקים אותו בשורת הפקודה ומקישים על Enter. יכול להיות שהקוד יופיע בכתובת ה-URL של הדף שאליו מופנים אחרי מתן הרשאה:
http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#
הערות
- פרטי ההרשאה מאוחסנים במערכת הקבצים, כך שלא תתבקשו להעניק הרשאה בהפעלות הבאות.
- תהליך ההרשאה בדוגמה הזו מיועד לאפליקציה של שורת פקודה. במאמר שימוש ב-OAuth 2.0 לאפליקציות אינטרנט מוסבר איך לבצע הרשאה באפליקציית אינטרנט.