אימות קריאות ל-API
בדוגמה הזו אנחנו ממחישים איך אפשר להשתמש בחשבונות שירות כדי לקרוא ל-AdSense Platforms API כדי ליצור ולנהל חשבונות משנה.
שלב 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
ה-API של הפלטפורמה של AdSense אינו ניתן לגילוי, כלומר עליך להיכנס לקישור הבא כדי להפעיל אותו בפרויקט שלך:
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.