Ruby

Google มีไลบรารีของไคลเอ็นต์ Ruby สําหรับการโต้ตอบกับ Ad Manager API เราขอแนะนำให้ใช้คลังไลบรารีไคลเอ็นต์กับ RubyGems

เริ่มต้นใช้งานโดยสร้างโปรเจ็กต์ใหม่ใน IDE ที่ต้องการ หรือเพิ่มข้อกำหนดในโปรเจ็กต์ที่มีอยู่ Google เผยแพร่ไลบรารีของไคลเอ็นต์ไปยัง RubyGems โดยใช้ชื่อ google-ads-ad_manager

Gemfile:

gem 'google-ads-ad_manager', '~> 0.1.0'

ติดตั้งโดยตรง

gem install google-ads-ad_manager

กำหนดค่าข้อมูลเข้าสู่ระบบ

ไลบรารีของไคลเอ็นต์ Ruby ใช้ OAuth2 และข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC) เพื่อตรวจสอบสิทธิ์

ADC จะค้นหาข้อมูลเข้าสู่ระบบตามลําดับในตําแหน่งต่อไปนี้

  1. ตัวแปรสภาพแวดล้อม GOOGLE_APPLICATION_CREDENTIALS
  2. ข้อมูลเข้าสู่ระบบของผู้ใช้ที่ตั้งค่าผ่าน Google Cloud CLI (gcloud CLI)
  3. เมื่อทำงานใน Google Cloud บัญชีบริการที่แนบอยู่กับทรัพยากร Google Cloud

ดูการสร้างและกําหนดค่าข้อมูลเข้าสู่ระบบ ADC ได้ที่การตรวจสอบสิทธิ์

ส่งคำขอแรก

บริการ REST แต่ละรายการจะมีคลาส Ruby ที่สอดคล้องกันซึ่งมีเมธอดสําหรับเมธอด REST ที่สอดคล้องกันแต่ละรายการ ตัวอย่างต่อไปนี้จะอ่าน Network

require "google/ads/ad_manager/v1"

def get_network
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Ads::AdManager::V1::NetworkService::Rest::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Ads::AdManager::V1::GetNetworkRequest.new(name: => 'networks/NETWORK_CODE)'

  # Call the get_network method.
  result = client.get_network request

  # The returned object is of type Google::Ads::AdManager::V1::Network.
  p result
end

ดูตัวอย่างวิธีการและแหล่งข้อมูลอื่นๆ ได้ที่ที่เก็บ GitHub googleapis/google-cloud-ruby

บันทึกคำขอ HTTP และการตอบกลับ

ไลบรารีของไคลเอ็นต์ Ruby ใช้ไลบรารี logger มาตรฐานเพื่อบันทึกคําขอและคําตอบ HTTP ระบบจะปิดใช้การบันทึกโดยค่าเริ่มต้น

หากต้องการเปิดใช้การบันทึก ให้ตั้งค่าตัวแปรสภาพแวดล้อม GOOGLE_SDK_RUBY_LOGGING_GEMS เป็นค่า google-ads-ad_manager หากใช้ Google API มากกว่า 1 รายการ คุณสามารถตั้งค่าเป็นรายการชื่อ Gem ของไลบรารีไคลเอ็นต์ที่คั่นด้วยคอมมา ลักษณะการบันทึกเริ่มต้นจะเขียนบันทึกลงในสตรีมข้อผิดพลาดมาตรฐาน

หรือคุณจะเปิดใช้การบันทึกในโค้ด Ruby ก็ได้โดยการแก้ไขการกำหนดค่า logger เมื่อสร้างออบเจ็กต์ไคลเอ็นต์

require "google/ads/ad_manager/v1"
require "logger"

client = ::Google::Ads::AdManager::V1::NetworkService::Rest::Client.new do |config|
  config.logger = Logger.new "my-app.log"
end

จัดการข้อผิดพลาด

ข้อผิดพลาดทั้งหมดของ Ad Manager API เป็นคลาสย่อยของ ::Google::Cloud::Error ในไลบรารีของไคลเอ็นต์ Ruby

result = client.get_network request
rescue ::Google::Cloud::Error => e
  puts "An error of type #{e.class} occurred with HTTP status #{e.status_code}"

ข้อผิดพลาดของ Ad Manager API จะมี request_id ที่ไม่ซ้ำกันซึ่งคุณสามารถส่งให้ฝ่ายสนับสนุนเพื่อขอความช่วยเหลือในการแก้ปัญหา ตัวอย่างต่อไปนี้จะดึงข้อมูล request_id ออกจากข้อผิดพลาด details

rescue ::Google::Cloud::Error => e
  request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
  puts request_info.request_id

สร้างชื่อทรัพยากร

ไลบรารีของไคลเอ็นต์มีคลาสตัวช่วยสำหรับสร้างชื่อทรัพยากรจากรหัส

require "google/ads/ad_manager/v1"

#  Constructs a String in the format:
#  "networks/{networkCode}/orders/{orderId}"
order_name = Google::Ads::AdManager::V1::OrderService::Paths::order_path(:network_code => 123, :order => 456)

ตั้งค่าพร็อกซี

ไลบรารีไคลเอ็นต์ Ruby จะใช้ทั้งตัวแปรสภาพแวดล้อม HTTP_PROXY และ HTTPS_PROXY