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

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

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

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

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

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

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

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

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

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

הוספת מותג

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

עריכת מותג

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

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

הסרת מותג

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

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

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

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

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

הוספת משתמש

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

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

הסרת משתמש

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

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

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

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

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

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

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

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

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

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

  1. בהגדרות חשבון, מנווטים לדף חשבון שירות.
  2. לוחצים על יצירת מפתח ואז על יצירה. הדפדפן מוריד את המפתח של חשבון השירות.

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

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

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

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

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

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

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

  4. בשדה webhook URL של נקודת קצה (webhook), מזינים את ה-webhook URL שמתחיל ב-'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. ב-Developer Console, לוחצים על אימות. כש-RBM מאמת את התגובה לפעולה מאתר אחר (webhook), תיבת הדו-שיח תיסגר.

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

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

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

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

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

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);
  

השלבים הבאים

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