הגדרת OAuth ושימוש בו

כל הקריאות ל-Local Services API חייבות להיות מאושרות באמצעות OAuth 2.0. כך אפליקציית הלקוח של Local Services API יכולה לגשת לחשבון של משתמש ב-Local Services Ads בלי לטפל בפרטי הכניסה של המשתמש או לאחסן אותם.

ממשק Local Services API משתמש בפרוטוקול OAuth 2.0 לאימות משתמשים. מידע נוסף על OAuth 2.0 מופיע במאמר בנושא שימוש ב-OAuth 2.0 כדי לגשת אל Google APIs.

הגדרת פרויקט ב-Google API Console לשימוש ב-Local Services API

כדי לאמת משתמשי Google Ads ולתת להם הרשאות, אתם צריכים פרטי כניסה לגישה לשרתי OAuth 2.0 של Google. פרטי הכניסה האלה מזהים את האפליקציה שלכם ב-Google ומאפשרים לכם ליצור טוקנים של OAuth כדי לנהל משתמשים ב-Google Ads. משתמשים ב-Google API Console כדי לנהל את הגישה לפרטי הכניסה שלכם ב-Google OAuth 2.0.

כדי לקבל את פרטי הכניסה האלה, פועלים לפי השלבים הבאים:

  1. יוצרים פרויקט. כדי לעשות את זה, עוברים אל Google API Console. לוחצים על Create project, מזינים שם ולוחצים על Create.

  2. מפעילים את Local Services API בפרויקט:

    1. פותחים את API Library ב-Google API Console. אם מתבקשים, בוחרים פרויקט או יוצרים פרויקט חדש. בספריית ה-API מפורטים כל ממשקי ה-API הזמינים, מקובצים לפי משפחת מוצרים ופופולריות.

      אם Local Services API לא מופיע ברשימה, משתמשים בתיבת החיפוש כדי למצוא אותו.

    2. בוחרים באפשרות Local Services API (ממשק API לשירותים מקומיים) ולוחצים על Enable (הפעלה).

  3. בוחרים סוג אפליקציה. ‫Local Services API משתמש באותם סוגי אפליקציות כמו Google Ads API. פרטים נוספים על סוג האפליקציה שבו כדאי להשתמש זמינים במאמר בחירת סוג אפליקציה.

  4. יוצרים מזהה לקוח וסוד לקוח. כדי ליצור מזהה לקוח וסוד לקוח ל-Local Services API, פועלים לפי אותם השלבים שבהם משתמשים כדי ליצור מזהה לקוח וסוד לקוח ל-Google Ads API. השלבים זהים בשני התרחישים לדוגמה.

שימוש בספריית הלקוח כדי לקבל אסימוני OAuth 2.0

רשימה של ספריות לקוח שאפשר להשתמש בהן כדי לשלוח בקשות הרשאה של OAuth 2.0 זמינה במאמר ספריות לקוח. פועלים לפי ההוראות הספציפיות לספרייה כדי ללמוד איך להשתמש באסימון רענון כדי לקבל אסימון גישה חדש.

איך מקבלים טוקן רענון מסוג OAuth 2.0

מומלץ להשתמש בספריות הלקוח בסביבת הייצור כדי לאמת משתמשים. אם רוצים להשתמש בלקוח HTTP למטרות בדיקה, צריך לפעול לפי ההוראות הבאות כדי לקבל אסימון רענון מסוג OAuth 2.0 ואסימון גישה. שלבים 1, 2 ו-3 הם הוראות להגדרה חד-פעמית שצריך לבצע באופן ידני. לאחר מכן אפשר לבצע אוטומציה של שלבים 4 ו-5 כדי להריץ אותם ללא התערבות אנושית, למשל באמצעות משימת cron.

  1. מורידים ומתקינים את curl, כלי לשורת פקודה ליצירת בקשות HTTP לאינטרנט.

  2. פועלים לפי ההוראות בדף OAuth Playground כדי לקבל טוקן רענון של OAuth 2.0. משתמשים בהיקף הבא עבור Local Services API:

    https://www.googleapis.com/auth/adwords
    

    זהו היקף ההרשאות של OAuth 2.0 שמשמש את Google Ads API.

    בסוף השלב הזה תקבלו שני אסימונים: אסימון רענון ואסימון גישה. שומרים את שניהם.

  3. מריצים את הפקודה הבאה בשורת הפקודה כדי לוודא שהשלב הקודם הצליח:

    curl https://oauth2.googleapis.com/tokeninfo?access_token=<INSERT_ACCESS_TOKEN>
    

    אם הפלט של הפקודה מציג הודעה כמו זו, סימן שהיא הצליחה:

    {
      "azp": "************-********************************.apps.googleusercontent.com",
      "aud": "************-********************************.apps.googleusercontent.com",
      "scope": "https://www.googleapis.com/auth/adwords [googleapis.com]",
      "exp": "1611183382",
      "expires_in": "3482",
      "access_type": "offline"
    }
    

    אם יש שגיאה או שההיקף לא נכון, נסו ליצור את האסימונים מחדש.

  4. יצירת אסימון גישה חדש ללא התערבות ידנית. זה חשוב כי התוקף של אסימוני הגישה פג כל שעה. תוקף של טוקנים לרענון נמשך הרבה יותר זמן, ולכן לעיתים קרובות צריך לבטל אותם באופן ידני כשאין בהם יותר צורך.

    כדי לקבל אסימון גישה חדש, מריצים את הפקודה הבאה:

    curl --data "refresh_token=<INSERT_REFRESH_TOKEN>&client_id=<INSERT_CLIENT_ID>&client_secret=<INSERT_CLIENT_SECRET>&grant_type=refresh_token" -X POST "https://oauth2.googleapis.com/token”
    
  5. מריצים את קריאת ה-API הבאה:

    curl -H "Authorization: Bearer <INSERT_ACCESS_TOKEN>" https://localservices.googleapis.com/v1/accountReports:search?query=manager_customer_id:<INSERT_10_DIGIT_MANAGER_CUSTOMER_ID_WITHOUT_HYPHENS>
    

    אם השיחה תתבצע, ההגדרה הושלמה.