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

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

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

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

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

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

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

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

  2. בדף Create credentials, לוחצים על Cancel.

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

  4. בוחרים בכרטיסייה Credentials, לוחצים על הכפתור Create credentials ובוחרים באפשרות מזהה לקוח OAuth.

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

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

  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 לאפליקציות אינטרנט מוסבר איך לבצע הרשאה באפליקציית אינטרנט.

קריאה נוספת