การเริ่มต้น Ruby อย่างรวดเร็ว

ทําตามขั้นตอนที่อธิบายไว้ในหน้าอื่นๆ ที่เหลือในอีกประมาณ 5 นาที คุณก็จะมีแอปพลิเคชันบรรทัดคําสั่ง Ruby ที่ส่งคําขอไปยัง YouTube Data API ได้อย่างง่ายดาย

โค้ดตัวอย่างที่ใช้ในคําแนะนํานี้จะดึงทรัพยากร channel สําหรับช่อง YouTube ของ Google Developers และพิมพ์ข้อมูลพื้นฐานจากทรัพยากรนั้น

สิ่งที่ต้องดำเนินการก่อน

หากต้องการเรียกใช้คู่มือเริ่มต้นฉบับย่อนี้ คุณจะต้องมีสิ่งต่อไปนี้

  • Ruby 2.0 ขึ้นไป
  • การเข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
  • บัญชี Google

ขั้นตอนที่ 1: เปิดใช้ YouTube Data API

  1. ใช้วิซาร์ดนี้เพื่อสร้างหรือเลือกโปรเจ็กต์ใน Google Developers Console แล้วเปิด API โดยอัตโนมัติ คลิกต่อไป แล้วคลิกไปที่ข้อมูลเข้าสู่ระบบ

  2. คลิกปุ่มยกเลิกในหน้าสร้างข้อมูลเข้าสู่ระบบ

  3. เลือกแท็บหน้าจอขอความยินยอม OAuth ที่ด้านบนของหน้า เลือกอีเมล ป้อนชื่อผลิตภัณฑ์ หากยังไม่ได้ตั้งค่าไว้ แล้วคลิกปุ่มบันทึก

  4. เลือกแท็บข้อมูลเข้าสู่ระบบ คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ OAuth

  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 หลายบัญชี ระบบจะขอให้คุณเลือก 1 บัญชีที่จะใช้สําหรับการให้สิทธิ์

  2. คลิกปุ่มยอมรับ
  3. คัดลอกโค้ดที่ได้รับ แล้ววางในข้อความแจ้งของบรรทัดคําสั่ง แล้วกด Enter รหัสอาจปรากฏใน URL ของหน้าเว็บที่ระบบเปลี่ยนเส้นทางคุณไปหลังจากให้สิทธิ์ ดังนี้

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

หมายเหตุ

  • ระบบจัดเก็บข้อมูลการให้สิทธิ์ไว้ในระบบไฟล์ ดังนั้นคําสั่งที่ตามมาก็คือจะไม่แสดงการให้สิทธิ์
  • ขั้นตอนการให้สิทธิ์ในตัวอย่างนี้ออกแบบมาสําหรับแอปพลิเคชันบรรทัดคําสั่ง สําหรับข้อมูลเกี่ยวกับวิธีให้สิทธิ์ในเว็บแอปพลิเคชัน โปรดดูการใช้ OAuth 2.0 สําหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์

อ่านเพิ่มเติม