مراحل شرح داده شده در ادامه این صفحه را تکمیل کنید و در حدود پنج دقیقه یک برنامه خط فرمان ساده Ruby خواهید داشت که درخواستهایی را به API داده YouTube ارسال میکند.
کد نمونهای که در این راهنما استفاده شده است، منبعchannel را برای کانال یوتیوب GoogleDevelopers بازیابی میکند و برخی اطلاعات اولیه را از آن منبع چاپ میکند.پیشنیازها
برای اجرای این شروع سریع، به موارد زیر نیاز دارید:
- روبی ۲.۰ یا بالاتر.
- دسترسی به اینترنت و مرورگر وب.
- یک حساب گوگل.
مرحله ۱: فعال کردن API داده یوتیوب
از این ویزارد برای ایجاد یا انتخاب یک پروژه در کنسول توسعهدهندگان گوگل و فعال کردن خودکار API استفاده کنید. روی ادامه کلیک کنید، سپس به اعتبارنامهها بروید .
در صفحه ایجاد اعتبارنامه ، روی دکمه لغو کلیک کنید.
در بالای صفحه، برگهی «رضایت OAuth» را انتخاب کنید. یک آدرس ایمیل انتخاب کنید، اگر نام محصول از قبل تعیین نشده است، آن را وارد کنید و روی دکمهی «ذخیره» کلیک کنید.
برگه اعتبارنامهها را انتخاب کنید، روی دکمه ایجاد اعتبارنامهها کلیک کنید و شناسه کلاینت OAuth را انتخاب کنید.
نوع برنامه را Other انتخاب کنید، نام آن را "YouTube Data API Quickstart" بگذارید و روی دکمه Create کلیک کنید.
برای رد کردن کادر محاورهای حاصل، روی تأیید کلیک کنید.
روی دکمه (دانلود JSON) در سمت راست شناسه کلاینت کلیک کنید.
فایل دانلود شده را به دایرکتوری کاری خود منتقل کنید و نام آن را
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
اولین باری که نمونه را اجرا میکنید، از شما خواسته میشود که دسترسی را تأیید کنید:
این نمونه تلاش میکند یک پنجره یا تب جدید در مرورگر پیشفرض شما باز کند. اگر این کار ناموفق بود، URL را از کنسول کپی کرده و به صورت دستی آن را در مرورگر خود باز کنید.
اگر قبلاً وارد حساب گوگل خود نشدهاید، از شما خواسته میشود که وارد شوید. اگر وارد چندین حساب گوگل شدهاید، از شما خواسته میشود که یک حساب را برای استفاده جهت مجوز انتخاب کنید.
- روی دکمه پذیرش کلیک کنید.
کدی که به شما داده شده را کپی کنید، آن را در خط فرمان جایگذاری کنید و Enter را فشار دهید. این کد ممکن است در URL صفحهای که پس از اعطای مجوز به آن هدایت میشوید، ظاهر شود:
http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#
یادداشتها
- اطلاعات مجوز در سیستم فایل ذخیره میشود، بنابراین اجراهای بعدی درخواست مجوز نخواهند کرد.
- جریان مجوزدهی در این مثال برای یک برنامه خط فرمان طراحی شده است. برای اطلاعات بیشتر در مورد نحوه انجام مجوزدهی در یک برنامه وب، به بخش «استفاده از OAuth 2.0 برای برنامههای وب سرور» مراجعه کنید.