การให้สิทธิ์และส่วนหัว HTTP

วิดีโอ: การตรวจสอบสิทธิ์

คุณต้องมีทั้งข้อมูลเข้าสู่ระบบแอปพลิเคชัน OAuth 2.0 และโทเค็นนักพัฒนาซอฟต์แวร์เมื่อเรียกใช้ Google Ads API หากเรียกใช้ API ด้วยบัญชีดูแลจัดการ Google Ads คุณจะต้องระบุlogin-customer-idส่วนหัวพร้อมกับคําขอแต่ละรายการด้วย หน้านี้จะอธิบายวิธีตั้งค่าค่าเหล่านี้และแสดงส่วนหัว HTTP สำหรับ API โดยเฉพาะเพิ่มเติมอีกหลายรายการที่ส่งและรับเมื่อใช้อินเทอร์เฟซ REST

ข้อมูลเข้าสู่ระบบ OAuth 2.0

Google Ads API ใช้ข้อมูลเข้าสู่ระบบของแอปพลิเคชันในการระบุและให้สิทธิ์คําขอ API คุณสามารถกําหนดค่าทั้งไคลเอ็นต์ OAuth 2.0 และบัญชีบริการได้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกําหนดค่าการให้สิทธิ์ฝั่งไคลเอ็นต์ได้ที่ OAuth2 ใน Google Ads API

หากเพิ่งเริ่มใช้ Google APIs คุณสามารถใช้ oauth2l หรือ OAuth 2.0 Playground เพื่อทดสอบข้อมูลเข้าสู่ระบบของแอปพลิเคชันและ Google Ads API ก่อนเขียนโค้ดสําหรับแอป

การใช้ขั้นตอนในเดสก์ท็อปหรือเว็บแอป

ทําตามขั้นตอนเพื่อกําหนดค่าโปรเจ็กต์คอนโซล Google API สําหรับ Google Ads API บันทึกรหัสไคลเอ็นต์และรหัสลับไคลเอ็นต์ แล้วกลับมาที่หน้านี้

เมื่อสร้างไคลเอ็นต์ OAuth แล้ว ให้ทำตามวิธีการขั้นตอนสำหรับแอปบนเดสก์ท็อปหรือขั้นตอนสำหรับเว็บแอปเพื่อสร้างโทเค็นรีเฟรชและโทเค็นการเข้าถึง

การใช้บัญชีบริการ

ทําตามวิธีการทั่วไปในคู่มือบัญชีบริการเพื่อตั้งค่าการเข้าถึงบัญชีบริการสําหรับ Google Ads API

เมื่อตั้งค่าบัญชีบริการเพื่อเข้าถึงบัญชี Google Ads แล้ว ให้ทําตามคำแนะนำการใช้ OAuth 2.0 สําหรับแอปพลิเคชันที่มีการโต้ตอบระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์ โดยอย่าลืมเลือกแท็บ HTTP/REST scope ที่จะใช้สําหรับการเข้าถึง Google Ads API คือ https://www.googleapis.com/auth/adwords

การสร้างโทเค็นการเข้าถึงใหม่

เมื่อคุณมีรหัสไคลเอ็นต์ คีย์ไคลเอ็นต์ และโทเค็นการรีเฟรชแล้ว คุณสามารถสร้างโทเค็นการเข้าถึงใหม่เพื่อใช้ในคําเรียก API ด้วยเครื่องมือบรรทัดคำสั่ง curl ดังนี้

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

จากนั้นใช้โทเค็นการเข้าถึงที่ส่งคืนโดยคําขอ curl ในส่วนหัว HTTP Authorization ของคําเรียก API ทั้งหมดไปยัง Google Ads API

GET /v19/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

ส่วนหัวของคำขอ

โทเค็นของนักพัฒนา

นอกจากนี้ Google Ads API ยังต้องใช้โทเค็นของนักพัฒนาซอฟต์แวร์ในการเรียกใช้ API ด้วย คุณสมัครรับโทเค็นสําหรับบัญชีดูแลจัดการได้โดยตรงจาก UI ของ Google Ads ดูรายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าด้วยโทเค็นของนักพัฒนาแอปได้ที่หัวข้อรับโทเค็นของนักพัฒนาแอป

คุณต้องใส่ค่าโทเค็นของนักพัฒนาแอปในส่วนหัว developer-token HTTP ของการเรียก API ไปยัง Google Ads API ทุกครั้ง

GET /v19/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

รหัสลูกค้าสำหรับการเข้าสู่ระบบ

สําหรับการเรียกใช้ Google Ads API ที่ผู้จัดการทํากับบัญชีลูกค้า (นั่นคือเมื่อเข้าสู่ระบบในฐานะผู้จัดการเพื่อเรียกใช้ API กับบัญชีลูกค้าบัญชีใดบัญชีหนึ่ง) คุณยังต้องระบุส่วนหัว HTTP login-customer-id ด้วย ค่านี้แสดงรหัสลูกค้า Google Ads ของผู้จัดการที่เรียก API

การใส่ส่วนหัวนี้เทียบเท่ากับการเลือกบัญชีใน UI ของ Google Ads หลังจากลงชื่อเข้าใช้หรือคลิกรูปโปรไฟล์ที่มุมขวาบนของหน้า เมื่อระบุรหัสลูกค้า โปรดนำขีดกลาง (—) ออก เช่น 1234567890 ไม่ใช่ 123-456-7890

GET /v19/customers:listAccessibleCustomers HTTP/1.1
Host: googleads.googleapis.com
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID

รหัสลูกค้าที่ลิงก์

ผู้ให้บริการวิเคราะห์แอปของบุคคลที่สามจะใช้ส่วนหัวนี้เมื่ออัปโหลด Conversion ไปยังบัญชี Google Ads ที่ลิงก์เท่านั้น ดูรายละเอียดเพิ่มเติมได้ที่คู่มือโครงสร้างการเรียก API

...
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN
login-customer-id: MANAGER_CUSTOMER_ID
linked-customer-id: LINKED_CUSTOMER_ID

ส่วนหัวการตอบกลับ

ระบบจะแสดงส่วนหัวต่อไปนี้ในการตอบกลับ HTTP จาก API

รหัสคำขอ

request-id คือสตริงที่ระบุคำขอ API โดยไม่ซ้ำกัน เมื่อแก้ไขข้อบกพร่องหรือแก้ปัญหาการเรียก API ที่เฉพาะเจาะจง request-id จะเป็นตัวระบุที่สำคัญที่ควรเก็บไว้เมื่อติดต่อทีมสนับสนุนนักพัฒนาซอฟต์แวร์ของ Google

request-id: 2a5Cj89VV7CNhya1DZjjrC