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

אחרי שנרשמים כשותפים ב-RCS לעסקים, מקבלים חשבון שותף. כדי לגשת להגדרות חשבון השותף, פותחים את מסוף הפיתוח של Business Communications ולוחצים על Partner account settings (הגדרות חשבון השותף). מכאן אפשר:

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

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

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

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

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

ניהול מותגים

שותפים ב-RCS לעסקים יכולים ליצור נציגי שירות בשם מותגים.

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

הוספת מותג

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

עריכת מותג

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

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

הסרת מותג

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

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

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

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

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

הוספת משתמש

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. מחפשים את הכותרת X-Goog-Signature של ההודעה. זהו עותק של מטען הייעודי (payload) של גוף ההודעה, שעבר גיבוב (hashing) וקידוד Base64.
  2. מפענחים את מטען ה-RBM הייעודי בקידוד Base-64 ברכיב message.body של הבקשה.
  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);
  

השלבים הבאים

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