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

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

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

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

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

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

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

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

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

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

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

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

  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 จากคอนโซลแล้วเปิด URL นั้นในเบราว์เซอร์ด้วยตนเอง

    หากยังไม่ได้เข้าสู่ระบบบัญชี Google ระบบจะแจ้งให้คุณเข้าสู่ระบบ หากเข้าสู่ระบบบัญชี Google หลายบัญชี ระบบจะขอให้คุณเลือกบัญชีที่จะใช้ในการให้สิทธิ์

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

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

หมายเหตุ

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

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