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

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

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

ข้อกำหนดเบื้องต้น

หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณจะต้องมีสิ่งต่อไปนี้

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

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

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

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

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

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

  5. เลือกประเภทแอปพลิเคชันอื่นๆ ป้อนชื่อ "Quickstart ของ YouTube Data API" แล้วคลิกปุ่มสร้าง

  6. คลิกตกลงเพื่อปิดกล่องโต้ตอบที่ปรากฏขึ้น

  7. คลิกปุ่ม (ดาวน์โหลด JSON) ทางด้านขวาของรหัสไคลเอ็นต์

  8. ย้ายไฟล์ที่ดาวน์โหลดไปยังไดเรกทอรีการทำงานและเปลี่ยนชื่อไฟล์ client_secret.json

ขั้นตอนที่ 2: ติดตั้ง Google Client Library

เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งไลบรารี

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

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

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

หมายเหตุ

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

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