איך מגדירים חשבון שותף/ה

אחרי שתירשמו כשותפי RBM, תהיה לכם גישה לחשבון שותפים. כדי לגשת להגדרות של חשבון השותף, פותחים את Business Communications Developer Console ולוחצים על Partner account settings. מכאן תוכלו:

עדכון פרטי חשבון השותף

בדף הגדרות אפשר לראות את מזהה השותף ולעדכן את הפרטים הבאים:

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

זה מי ש-Google תפנה אליו אם יהיו בעיות טכניות הקשורות לנציגים שלך. אפשר לעדכן את

  • שם
  • כתובת האימייל של החברה
  • מספר טלפון
Webhook זוהי כתובת ה-URL של נקודת הקצה של ה-webhook. לוחצים על Configure (הגדרה) כדי לעדכן אותה. כש מגדירים את ה-webhook של השותף, הוא חל על כל הנציגים. אם רוצים להשתמש ב-webhook אחר לסוכן מסוים, אפשר להגדיר webhook לסוכן שיחול רק עליו.

ניהול מותגים

שותפי RBM יכולים ליצור נציגים בשם מותגים.

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

הוספת מותג

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

עריכת מותג

כדי לערוך מותג:

  1. לוחצים על תיבת הסימון שלצד שם המותג.
  2. לוחצים על הלחצן ואז על עריכת השם.
  3. מבצעים את השינויים הרצויים ולוחצים על סיום.

הסרת מותג

אי אפשר להסיר מותג אם הוא משויך לנציג, גם אם הנציג לא הושקה.

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

ניהול משתמשים

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

  • מנהלים יכולים לגשת לכל היכולות של מסוף הפיתוח כדי לנהל את כל הסוכנים ששייכים לחשבון השותף.
  • לקוראים יש גישה ל-Developer Console לצורך קריאה בלבד, כדי לראות את כל הסוכנים ששייכים לחשבון השותף.

הוספת משתמש

כדי להוסיף משתמש, מזינים את כתובת האימייל שלו בשדה הקלט ובוחרים את התפקיד שלו.

כשאתם מוסיפים משתמש חדש, הוא מקבל אימייל עם הודעה על כך שיש לו גישה לחשבון השותף.

להסיר משתמשים

כדי להסיר משתמש:

  1. מאתרים את המשתמש שרוצים להסיר ולוחצים על הלחצן בשורה שלו בטבלה.
  2. בוחרים באפשרות הסרת משתמש.
  3. מאשרים את ההסרה.

המשתמש שהוסר יקבל אימייל עם הודעה על כך שאין לו יותר גישה לחשבון השותף.

לא ניתן להסיר משתמש עם תפקיד 'בעלים'. כדי לשנות או להסיר את הבעלים, צריך לפנות אל התמיכה.

שינוי תפקיד של משתמש

כדי לעדכן את התפקיד של משתמש:

  1. מאתרים את המשתמש שרוצים לעדכן ולוחצים על הלחצן בשורה שלו בטבלה.
  2. בוחרים באפשרות Edit role.
  3. בוחרים תפקיד חדש מהתפריט הנפתח.
  4. לוחצים על שמירה.

הגדרת חשבון שירות לאימות קריאות ל-API

כשאתם מבצעים קריאות ל-RBM API, אתם מאמתים את הקריאות באמצעות מפתח של חשבון שירות. המפתח הזה מאפשר ליצור ולנהל מותגים ונציגים, ולשלוח הודעות ובקשות בתור נציג. בחשבון שירות יכולים להיות עד 10 מפתחות.

כדי לאמת באופן מאובטח קריאות ל-API, צריך גם את הכלי של שורת הפקודה oauth2l.

כדי ליצור מפתח לחשבון שירות:

  1. בדף Account settings, עוברים לדף Service account.
  2. לוחצים על Create key ואז על Create. הדפדפן מוריד את המפתח של חשבון השירות.

שומרים את המפתח של חשבון השירות במקום מאובטח ופרטי. אל תשתפו את המפתח באופן ציבורי. תצטרכו את המפתח הזה בהמשך כדי לגשת לממשקי ה-RBM API.

הגדרת ה-webhook של השותף

webhook הוא קריאה חוזרת (callback) מסוג HTTPS שנוצרת על ידי שותף, ומציינת איך הנציג צריך להגיב להודעות ולאירועים. אחרי שתגדירו את ה-webhook, תוכלו להתחיל לקבל הודעות ואירועים.

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

כדי להגדיר את ה-webhook של השותף:

  1. פותחים את Business Communications Developer Console ונכנסים באמצעות חשבון Google שלכם כשותף RBM.

  2. פותחים את הגדרות החשבון.

  3. בשדה כתובת ה-URL של ה-webhook ל-RCS Business Messaging, לוחצים על הגדרה.

  4. בשדה Webhook URL של נקודת הקצה, מזינים את כתובת ה-webhook שמתחילה ב-'https://‎'.

  5. שימו לב לערך של clientToken. הוא נדרש כדי לוודא שההודעות שאתם מקבלים מגיעות מ-Google.

  6. מגדירים את ה-webhook כך שיקבל בקשת POST עם הפרמטר clientToken שצוין, ושולח תגובה מסוג 200 OK עם הערך של הפרמטר secret כטקסט פשוט כתוכן התשובה.

    לדוגמה, אם ה-webhook מקבל בקשת POST עם תוכן הגוף הבא:

    {
      "clientToken":"SJENCPGJESMGUFPY",
      "secret":"1234567890"
    }
    

    ה-webhook צריך לאשר את הערך של clientToken, ואם הערך של clientToken תקין, להחזיר תגובה מסוג 200 OK עם 1234567890 כגוף התגובה:

    // clientToken from Configure
    const myClientToken = "SJENCPGJESMGUFPY";
    
    // Example endpoint
    app.post("/rbm-webhook", (req, res) => {
      const msg = req.body;
      if (msg.clientToken === myClientToken) {
          res.status(200).send(msg.secret);
          return;
      }
      res.send(400);
    });
    
  7. במסוף הפיתוח, לוחצים על אימות. כש-RBM מאמת את ה-webhook, תיבת הדו-שיח נסגרת.

במאמר טיפול בהודעות מוסבר איך לטפל בכשלים בשליחת webhook ולהבטיח עיבוד אמין של הודעות.

אימות הודעות נכנסות

מאחר ש-webhooks יכולים לקבל הודעות מכל שולחים, עליכם לוודא ש-Google שלחה את ההודעות הנכנסות לפני עיבוד תוכן ההודעות.

כדי לוודא ש-Google שלחה הודעה שקיבלת, יש לבצע את השלבים הבאים:

  1. חילוץ הכותרת X-Goog-Signature של ההודעה. זהו עותק של המטען הייעודי (payload) של גוף ההודעה, שהועבר דרך גיבוב (hash) וקידוד base64.
  2. פענוח של מטען ה-RBM ברכיב message.body בבקשה באמצעות Base-64.
  3. משתמשים בטוקן הלקוח של ה-webhook (שציינתם כשהגדרתם את ה-webhook) כמפתח, יוצרים HMAC של SHA512 מהבייטים של עומס העבודה של ההודעה שפוענחה ב-base64 ומקודדים את התוצאה ב-base64.
  4. משווים את הגיבוב של X-Goog-Signature לגיבוב שיצרתם.
    • אם הגיבובים תואמים, סימן ש-Google שלחה את ההודעה.
    • אם הגרסאות של הגיבוב לא תואמות, צריך לבדוק את תהליך הגיבוב בהודעה ידועה ותקינה.

      אם תהליך הגיבוב פועל כראוי ותקבלו הודעה שלדעתכם נשלחה אליך באופן שמקורו בתרמית, פנו אלינו.

Node.js

  if ((requestBody.hasOwnProperty('message')) && (requestBody.message.hasOwnProperty('data'))) {
    // Validate the received hash to ensure the message came from Google RBM
    let userEventString = Buffer.from(requestBody.message.data, 'base64');
    let hmac = crypto.createHmac('sha512', CLIENT_TOKEN);
    let data = hmac.update(userEventString);
    let genHash = data.digest('base64');
    let headerHash = req.header('X-Goog-Signature');

    if (headerHash === genHash) {
      let userEvent = JSON.parse(userEventString);

      console.log('userEventString: ' + userEventString);
      handleMessage(userEvent);
    } else {
      console.log('hash mismatch - ignoring message');
    }
  }

  res.sendStatus(200);
  

השלבים הבאים

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