完成本頁其餘步驟,您將在大約五分鐘內取得一個簡單的 Ruby 指令列應用程式,向 YouTube Data API 發出要求。
本指南中使用的程式碼範例會擷取 Google 開發人員 YouTube 頻道的channel
資源,並列印該資源中的一些基本資訊。
必要條件
如要執行本快速入門導覽課程,您必須符合以下條件:
- Ruby 2.0 以上版本。
- 網際網路和網路瀏覽器存取。
- Google 帳戶。
步驟 1:啟用 YouTube Data API
-
請使用這個精靈在 Google Developers Console 中建立或選取專案,並自動啟用這個 API。按一下 [繼續],然後點選 [前往憑證]。
-
在「Create credentials」(建立憑證) 頁面中,按一下 [Cancel] (取消) 按鈕。
-
選取頁面頂端的 [OAuth 同意畫面] 分頁標籤。 選取「Email address」(電子郵件地址),輸入「Product name」(產品名稱) (如果尚未設定的話),然後按一下「Save」(儲存) 按鈕。
-
選取 [憑證] 分頁標籤,按一下 [建立憑證] 按鈕並選取 [OAuth 用戶端 ID]。
-
選取「Other」(其他) 應用程式類型,輸入「YouTube Data API 快速入門」名稱,然後按一下 [Create] (建立) 按鈕。
-
按一下「OK」,關閉產生的對話方塊。
-
按一下用戶端 ID 右側的
(下載 JSON) 按鈕。 -
將下載的檔案移至工作目錄,並重新命名為
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
第一次執行範例時,系統會提示您授予存取權。
該範例會嘗試在預設瀏覽器中開啟新視窗或分頁。 如果失敗,則從主控台複製網址,並在瀏覽器中在瀏覽器中開啟網址。
如果您尚未登入 Google 帳戶,系統會提示您登入帳戶。如果您登入多個 Google 帳戶,系統會要求您選取一個授權帳戶。
- 按一下 [接受] 按鈕。
複製您提供的程式碼,然後貼到指令列提示中,然後按下 Enter 鍵。程式碼可能會授權在您授予授權後重新導向的網頁網址:
http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#
Notes
- 授權資訊會儲存在檔案系統中,因此後續執行作業不會提示執行授權。
- 這個範例中的授權流程適用於指令列應用程式。如要瞭解如何在網路應用程式中執行授權,請參閱使用 OAuth 2.0 處理網路伺服器應用程式。