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

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

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

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

כדי להריץ את המדריך המהיר הזה, צריך:

  • 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 client ID.

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

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

קריאה נוספת