การตรวจสอบสิทธิ์การเรียก API

ในตัวอย่างนี้ เราจะแสดงวิธีใช้บัญชีบริการเพื่อเรียกใช้ API แพลตฟอร์ม AdSense เพื่อสร้างและจัดการบัญชีย่อย

ขั้นตอนที่ 1: สร้างโปรเจ็กต์ Google Cloud ใหม่ (หรือใช้โปรเจ็กต์ที่มีอยู่)

หากคุณมีโปรเจ็กต์ Google Cloud อยู่แล้ว คุณก็สามารถใช้โปรเจ็กต์นั้นได้ หรือทำตามคำแนะนำด้านล่างเกี่ยวกับการตั้งค่าโปรเจ็กต์ใหม่

https://cloud.google.com/resource-manager/docs/creating-managing-projects

ขั้นตอนที่ 2: สร้างบัญชีบริการ

การใช้บัญชีบริการเป็นวิธีที่ดีที่สุดในการสร้างบัญชีย่อย ทำตามขั้นตอนต่อไปนี้เพื่อสร้างบัญชีบริการ

  • ไปที่หน้าบัญชีบริการใน Google Cloud
  • คุณจะใช้บัญชีบริการที่มีอยู่หรือสร้างบัญชีใหม่ก็ได้ ดังนี้
    • คลิก "+ สร้างบัญชีบริการ"
    • กรอก "รายละเอียดบัญชีบริการ" แบบฟอร์ม
    • ขั้นตอนที่ 2 และ 3 ในหน้านี้ (การให้สิทธิ์เข้าถึงโปรเจ็กต์และผู้ใช้) เป็นตัวเลือกที่ไม่บังคับ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการบัญชีบริการ

เมื่อสร้างบัญชีบริการแล้ว คุณต้องส่งไปยัง Google เพื่อเพิ่มลงในบัญชี AdSense ขั้นตอนนี้สำคัญเนื่องจากบัญชีบริการต้องได้รับอนุญาตให้เข้าถึงบัญชี AdSense โปรดแจ้งเรื่องนี้ผ่านผู้จัดการฝ่ายดูแลลูกค้า

ขั้นตอนที่ 3: เปิดใช้ AdSense Platform API สำหรับโปรเจ็กต์ Google Cloud

ไม่พบ AdSense Platform API ดังนั้นคุณต้องไปที่ลิงก์ต่อไปนี้เพื่อเปิดใช้ API ดังกล่าวสำหรับโปรเจ็กต์ของคุณ

https://console.developers.google.com/apis/api/adsenseplatform.googleapis.com/overview

ขั้นตอนที่ 4: สร้างคีย์บริการ

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

  • ไปที่หน้าบัญชีบริการใน Google Cloud
  • ในคอลัมน์การดำเนินการ ให้คลิก สำหรับบัญชีบริการที่คุณต้องการใช้สร้างบัญชีย่อย แล้วคลิก "จัดการคีย์"
  • คลิก "เพิ่มคีย์" แล้วเลือก "สร้างคีย์ใหม่"
  • เลือก JSON เป็นประเภทคีย์แล้วคลิก "สร้าง"
  • ระบบจะสร้างไฟล์ JSON และดาวน์โหลดลงในคอมพิวเตอร์ โปรดเก็บข้อมูลนี้ไว้ให้ปลอดภัยเนื่องจากจำเป็นต้องใช้ในการตรวจสอบสิทธิ์การเรียก API

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและจัดการคีย์บัญชีบริการ

ขั้นตอนที่ 5: ใช้ไลบรารี OAuth ของ Google เพื่อสร้างโทเค็นเพื่อการเข้าถึง

Google มีไลบรารีเพื่อช่วยสร้างโทเค็นเพื่อการเข้าถึง ซึ่งสามารถใช้ในการเรียก API ได้ ดูข้อมูลเกี่ยวกับวิธีสร้างข้อมูลเข้าสู่ระบบสำหรับบัญชีบริการได้ที่นี่

https://developers.google.com/identity/protocols/oauth2/service-account#authorizingrequests

ขอบเขตของ AdSense Platforms API มีดังนี้ https://www.googleapis.com/auth/adsense

ตัวอย่าง Python

from google.auth.transport import requests
from google.oauth2 import service_account

CREDENTIAL_SCOPES = ["https://www.googleapis.com/auth/adsense"]
CREDENTIALS_KEY_PATH = 'service.json'

def get_service_account_token():
  credentials = service_account.Credentials.from_service_account_file(
          CREDENTIALS_KEY_PATH, scopes=CREDENTIAL_SCOPES)
  credentials.refresh(requests.Request())
  return credentials.token

ขณะนี้ คุณพร้อมจะเริ่มเรียกใช้ API แล้ว เนื่องจาก AdSense Platform API ยังไม่รองรับไลบรารีของไคลเอ็นต์ คุณจึงต้องส่งคำขอ HTTP โดยตรงแทน ควรระบุโทเค็นเพื่อการเข้าถึงเป็นส่วนหัวในคำขอ HTTP ส่วนหัวควรมีลักษณะดังนี้

Authorization: OAuth <credentials>

ตัวอย่างรวมอยู่ในหน้า API