מדריך למתחילים של Ruby

משלימים את השלבים שמתוארים בהמשך הדף הזה, ותוך חמש דקות בערך יהיה לכם יישום פשוט של שורת פקודה ב-Ruby ששולח בקשות אל YouTube Data API.

קוד הדוגמה שמופיע במדריך הזה מאחזר את משאב channel של ערוץ GoogleDevelopers ב-YouTube ומדפיס מידע בסיסי מהמשאב הזה.

דרישות מוקדמות

כדי להפעיל את המדריך למתחילים הזה, אתם צריכים:

  • ‫Ruby 2.0 ואילך.
  • גישה לאינטרנט ולדפדפן אינטרנט.
  • חשבון Google.

שלב 1: מפעילים את YouTube Data API

  1. משתמשים באשף הזה כדי ליצור או לבחור פרויקט ב-Google Developers Console ולהפעיל את ה-API באופן אוטומטי. לוחצים על המשך ואז על Go to credentials (מעבר אל פרטי הכניסה).

  2. בדף יצירת פרטי כניסה, לוחצים על הלחצן ביטול.

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

  4. בכרטיסייה Credentials לוחצים על הלחצן Create credentials ובוחרים באפשרות OAuth client ID.

  5. בוחרים בסוג האפליקציה Other, מזינים את השם YouTube Data API Quickstart ולוחצים על הלחצן Create.

  6. לוחצים על אישור כדי לסגור את תיבת הדו-שיח שמופיעה.

  7. לוחצים על הלחצן (הורדת קובץ JSON) משמאל למזהה הלקוח.

  8. מעבירים את הקובץ שהורדתם לספריית העבודה ומשנים את השם שלו ל-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

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

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

    אם אתם לא מחוברים לחשבון Google, תתבקשו להתחבר. אם אתם מחוברים לכמה חשבונות Google, תתבקשו לבחור חשבון אחד שבו תרצו להשתמש לצורך ההרשאה.

  2. לוחצים על הלחצן אישור.
  3. מעתיקים את הקוד שקיבלתם, מדביקים אותו בשורת הפקודה ומקישים על Enter. יכול להיות שהקוד יופיע בכתובת ה-URL של הדף שאליו מופנים אחרי מתן הרשאה:

    http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#

הערות

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

קריאה נוספת