ทําตามขั้นตอนที่อธิบายไว้ในหน้าอื่นๆ ที่เหลือในอีกประมาณ 5 นาที คุณก็จะมีแอปพลิเคชันบรรทัดคําสั่ง Ruby ที่ส่งคําขอไปยัง YouTube Data API ได้อย่างง่ายดาย
โค้ดตัวอย่างที่ใช้ในคําแนะนํานี้จะดึงทรัพยากรchannel
สําหรับช่อง YouTube ของ Google Developers และพิมพ์ข้อมูลพื้นฐานจากทรัพยากรนั้น
สิ่งที่ต้องดำเนินการก่อน
หากต้องการเรียกใช้คู่มือเริ่มต้นฉบับย่อนี้ คุณจะต้องมีสิ่งต่อไปนี้
- Ruby 2.0 ขึ้นไป
- การเข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
- บัญชี Google
ขั้นตอนที่ 1: เปิดใช้ YouTube Data API
-
ใช้วิซาร์ดนี้เพื่อสร้างหรือเลือกโปรเจ็กต์ใน Google Developers Console แล้วเปิด API โดยอัตโนมัติ คลิกต่อไป แล้วคลิกไปที่ข้อมูลเข้าสู่ระบบ
-
คลิกปุ่มยกเลิกในหน้าสร้างข้อมูลเข้าสู่ระบบ
-
เลือกแท็บหน้าจอขอความยินยอม OAuth ที่ด้านบนของหน้า เลือกอีเมล ป้อนชื่อผลิตภัณฑ์ หากยังไม่ได้ตั้งค่าไว้ แล้วคลิกปุ่มบันทึก
-
เลือกแท็บข้อมูลเข้าสู่ระบบ คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth
-
เลือกประเภทแอปพลิเคชัน อื่นๆ จากนั้นป้อนชื่อ "คู่มือเริ่มใช้งาน YouTube Data API ฉบับย่อ" แล้วคลิกปุ่มสร้าง
-
คลิกตกลงเพื่อปิดกล่องโต้ตอบที่ได้รับ
-
คลิกปุ่ม
(ดาวน์โหลด 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
ครั้งแรกที่เปิดตัวอย่าง จะมีข้อความแจ้งให้คุณให้สิทธิ์เข้าถึง
ตัวอย่างจะพยายามเปิดหน้าต่างหรือแท็บใหม่ในเบราว์เซอร์เริ่มต้น หากไม่สําเร็จ ให้คัดลอก URL จากคอนโซลและเปิดด้วยตัวเองในเบราว์เซอร์
หากยังไม่ได้เข้าสู่ระบบบัญชี Google ระบบจะแจ้งให้คุณลงชื่อเข้าใช้ หากลงชื่อเข้าใช้บัญชี Google หลายบัญชี ระบบจะขอให้คุณเลือก 1 บัญชีที่จะใช้สําหรับการให้สิทธิ์
- คลิกปุ่มยอมรับ
คัดลอกโค้ดที่ได้รับ แล้ววางในข้อความแจ้งของบรรทัดคําสั่ง แล้วกด Enter รหัสอาจปรากฏใน URL ของหน้าเว็บที่ระบบเปลี่ยนเส้นทางคุณไปหลังจากให้สิทธิ์ ดังนี้
http://localhost/?code=4/nr_1TspmmQPFyifh7nz...OFo#
หมายเหตุ
- ระบบจัดเก็บข้อมูลการให้สิทธิ์ไว้ในระบบไฟล์ ดังนั้นคําสั่งที่ตามมาก็คือจะไม่แสดงการให้สิทธิ์
- ขั้นตอนการให้สิทธิ์ในตัวอย่างนี้ออกแบบมาสําหรับแอปพลิเคชันบรรทัดคําสั่ง สําหรับข้อมูลเกี่ยวกับวิธีให้สิทธิ์ในเว็บแอปพลิเคชัน โปรดดูการใช้ OAuth 2.0 สําหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์