Ruby Quick Start

مراحل شرح داده شده در ادامه این صفحه را تکمیل کنید و در حدود پنج دقیقه یک برنامه خط فرمان ساده Ruby خواهید داشت که درخواست‌هایی را به API داده YouTube ارسال می‌کند.

کد نمونه‌ای که در این راهنما استفاده شده است، منبع channel را برای کانال یوتیوب GoogleDevelopers بازیابی می‌کند و برخی اطلاعات اولیه را از آن منبع چاپ می‌کند.

پیش‌نیازها

برای اجرای این شروع سریع، به موارد زیر نیاز دارید:

  • روبی ۲.۰ یا بالاتر.
  • دسترسی به اینترنت و مرورگر وب.
  • یک حساب گوگل.

مرحله ۱: فعال کردن API داده یوتیوب

  1. از این ویزارد برای ایجاد یا انتخاب یک پروژه در کنسول توسعه‌دهندگان گوگل و فعال کردن خودکار API استفاده کنید. روی ادامه کلیک کنید، سپس به اعتبارنامه‌ها بروید .

  2. در صفحه ایجاد اعتبارنامه ، روی دکمه لغو کلیک کنید.

  3. در بالای صفحه، برگه‌ی «رضایت OAuth» را انتخاب کنید. یک آدرس ایمیل انتخاب کنید، اگر نام محصول از قبل تعیین نشده است، آن را وارد کنید و روی دکمه‌ی «ذخیره» کلیک کنید.

  4. برگه اعتبارنامه‌ها را انتخاب کنید، روی دکمه ایجاد اعتبارنامه‌ها کلیک کنید و شناسه کلاینت OAuth را انتخاب کنید.

  5. نوع برنامه را Other انتخاب کنید، نام آن را "YouTube Data API Quickstart" بگذارید و روی دکمه Create کلیک کنید.

  6. برای رد کردن کادر محاوره‌ای حاصل، روی تأیید کلیک کنید.

  7. روی دکمه (دانلود JSON) در سمت راست شناسه کلاینت کلیک کنید.

  8. فایل دانلود شده را به دایرکتوری کاری خود منتقل کنید و نام آن را client_secret.json تغییر دهید.

مرحله ۲: نصب کتابخانه کلاینت گوگل

برای نصب کتابخانه، دستور زیر را اجرا کنید:

gem install google-api-client

برای گزینه‌های نصب جایگزین، به صفحه نصب کتابخانه مراجعه کنید.

مرحله ۳: نمونه را تنظیم کنید

یک فایل با نام 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')

مرحله ۴: اجرای نمونه

نمونه را با استفاده از دستور زیر اجرا کنید:

ruby quickstart.rb

اولین باری که نمونه را اجرا می‌کنید، از شما خواسته می‌شود که دسترسی را تأیید کنید:

  1. این نمونه تلاش می‌کند یک پنجره یا تب جدید در مرورگر پیش‌فرض شما باز کند. اگر این کار ناموفق بود، URL را از کنسول کپی کرده و به صورت دستی آن را در مرورگر خود باز کنید.

    اگر قبلاً وارد حساب گوگل خود نشده‌اید، از شما خواسته می‌شود که وارد شوید. اگر وارد چندین حساب گوگل شده‌اید، از شما خواسته می‌شود که یک حساب را برای استفاده جهت مجوز انتخاب کنید.

  2. روی دکمه پذیرش کلیک کنید.
  3. کدی که به شما داده شده را کپی کنید، آن را در خط فرمان جایگذاری کنید و Enter را فشار دهید. این کد ممکن است در URL صفحه‌ای که پس از اعطای مجوز به آن هدایت می‌شوید، ظاهر شود:

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

یادداشت‌ها

  • اطلاعات مجوز در سیستم فایل ذخیره می‌شود، بنابراین اجراهای بعدی درخواست مجوز نخواهند کرد.
  • جریان مجوزدهی در این مثال برای یک برنامه خط فرمان طراحی شده است. برای اطلاعات بیشتر در مورد نحوه انجام مجوزدهی در یک برنامه وب، به بخش «استفاده از OAuth 2.0 برای برنامه‌های وب سرور» مراجعه کنید.

مطالعه بیشتر