בדיקת יכולות

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

אם המכשיר של המשתמש לא תומך בקבלת הודעות RCS, אפשר לתקשר עם המשתמש באמצעות שירותים אחרים, כמו SMS או MMS.

בדיקת היכולות של המכשיר

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

cURL

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send a capability check to the device
rbmApiHelper.checkCapability('+12223334444', function(response) {
   // Print capabilities of the device
   console.log(response);
});
הקוד הזה הוא קטע מנציג לדוגמה של RBM.

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Check the capabilities of the device
boolean capability = rbmApiHelper.getCapability("+12223334444");
הקוד הזה הוא קטע מנציג לדוגמה של RBM.

Python

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Send the tester invite to a device
response = rbm_service.make_cap_request('+12223334444')
הקוד הזה הוא קטע מנציג לדוגמה של RBM.

C#‎

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Register the device as a tester
Capabilities capabilities = rbmApiHelper.GetCapability("+12223334444");
הקוד הזה הוא קטע מנציג לדוגמה של RBM.

תשובה בנוגע ליכולת

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

{
  "features": [
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "PDF_IN_RICH_CARDS"
  ]
}

הבקשה מחזירה תגובה או שגיאה.

תשובה מוצלחת תוחזר רק אם מספר הטלפון התחבר לשירות RCS ב-31 הימים האחרונים. המשמעות היא שהמכשיר של המשתמש ביצע צ'ק-אין עם שרת ה-RCS שלנו בפרק הזמן הזה. מכשירים אונליין ומכשירים עם RCS מבצעים צ'ק-אין כל שעה עד 4 שעות בממוצע.

אם משתמש מעביר את כרטיס ה-SIM שלו למכשיר אחר שתומך ב-RCS, השיוך הקודם של המכשיר מוסר ונוצר שיוך חדש, והיכולות של המכשיר בשירות ה-RCS מתעדכנות.

אם מכניסים כרטיס SIM למכשיר שבו ספק הסלולר או היצרן השביתו את RCS, או אם לא נעשה שימוש בכרטיס ה-SIM, שירות ה-RCS עדיין ינסה למסור הודעות למכשיר שקשור אליו למשך עד 31 ימים.

אלה הסיבות לשגיאות 404:

  • אי אפשר להגיע למשתמש באמצעות RBM – למשל, אם המכשיר שלו לא תומך ב-RCS.

  • למשתמש יש RCS, אבל הסוכן שלכם לא מופעל ברשת הסלולרית שלו.

הוספה לתור במצב אופליין

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

בדיקות יכולות בכמות גדולה

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

לכל בדיקה של יכולת ביצוע פעולות בכמות גדולה, צריך לספק 500 עד 10,000 מספרי טלפון ייחודיים. כדי לבדוק עוד מספרים, מבצעים כמה בדיקות. אפשר לבצע עד 600 שיחות בדקה. אפשר להשתמש בסקריפט לבדיקת יכולות בכמות גדולה כדי להשתמש בקובצי CSV כפורמט קלט. בדיקות בכמות גדולה נקראות ממטמון היכולות, שמתעדכן על ידי לקוחות באופן אורגני באמצעות RCS. הסוכנים לא מבקשים ישירות את היכולות של כל מכשיר. לכן, יכול להיות שהתוצאות לא יהיו עדכניות.

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

הערכה של מספר המשתמשים הכולל שאפשר להגיע אליהם

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

איך זה עובד

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

לדוגמה, אם מציינים 5,000 מספרי טלפון בבדיקה של יכולת השליחה בכמות גדולה, ו-RBM בוחר באופן אקראי כ-75% מהמספרים שצוינו, יכול להיות ש-totalRandomSampleUserCount יהיה 3750. אם reachableRandomSampleUserCount הוא 3000, אז אפשר היה להגיע ל-80% מהמספרים שנכללו במדגם.

התייחסות לדגימה אקראית

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

שליחת בדיקה של יכולות בכמות גדולה

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

מספרי הטלפון צריכים להיות בפורמט E.164 (לדוגמה, ‎+12223334444), והרשימה צריכה לכלול 500 עד 10,000 מספרי טלפון ייחודיים.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet?agentId=AGENT_ID \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d '{
  "users": [
    "PHONE_NUMBER",
  ]
}'

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Specify phone numbers
let phoneNumbers = ['+12223334444', '+12223334444'];

// Perform a bulk capability check
rbmApiHelper.getUsers(phone_numbers, function(response) {
   // Print the bulk capability check response
   console.log(response);
});
הקוד הזה משתמש בסוכן לדוגמה של RBM.

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.getUsers(Arrays.asList("+12223334444", "+12223334444"));
הקוד הזה משתמש בסוכן לדוגמה של RBM.

Python

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Perform a bulk capability check
response = rbm_service.make_batch_cap_request(['+12223334444', '+12223334444'])
הקוד הזה משתמש בסוכן לדוגמה של RBM.

C#‎

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.GetUsers(new List({"+12223334444", "+12223334444"}));
הקוד הזה משתמש בסוכן לדוגמה של RBM.

תשובה לבדיקת יכולת בכמות גדולה

אחרי שמריצים בדיקה של יכולות בכמות גדולה, RBM מחזיר תגובה בפורמט JSON.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
שדה תיאור
reachableUsers רשימה של משתמשים שאפשר להגיע אליהם באמצעות ספקי הסלולר שהסוכן השיק.
totalRandomSampleUserCount הספירה של מדגם אקראי של מספרים שצוינו. בדרך כלל כ-75% מהמספרים שצוינו.
reachableRandomSampleUserCount מספר הטלפונים במדגם האקראי שאפשר להגיע אליהם באמצעות RBM בכל הספקים, בלי קשר לספקים שבהם הסוכן הושק. המספר הזה משמש להערכה גסה של המספר הכולל של משתמשים שאפשר להגיע אליהם בכל הספקים.
reachableUsersMap פלט בלבד. מיפוי של מזהה חברת התובלה לרשימה של משתמשים שאפשר להגיע אליהם בחברת התובלה הזו. השדה הזה מאוכלס רק עבור מספרי טלפון בארה"ב.

כלי: סקריפט לבדיקת יכולות בכמות גדולה

‫ ‫Buck Capability Check Script (Sign in to download) מבצע בדיקות יכולות בכמות גדולה באמצעות קובצי CSV כפורמטים של קלט ופלט. הסקריפט מנתח את קובץ ה-CSV של מספרי ה-MSISDN ומשתמש ב-SDK של RBM כדי לבדוק את היכולות של כל מכשיר שמופיע ברשימה.

מכונה וירטואלית עם 2 מעבדים וזיכרון RAM של 4GB שמריצה את הסקריפט עם 500 שרשורים יכולה להגיע לכ-1, 000 שאילתות לשנייה (QPS), אבל מספר השאילתות הכולל לשנייה תלוי במכונה שבה נעשה שימוש, במדינה שבה נמצאים המכשירים, בהגדרות האזוריות של הסוכן ובנקודת הקצה של ה-API שבה נעשה שימוש.

דרישות מוקדמות

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

  • הנתיב לקובץ CSV עם מספרי MSISDN לביצוע בדיקות יכולת
  • הנתיב למפתח של חשבון השירות של הסוכן במכונת הפיתוח

בנוסף, צריך להתקין את התוכנות הבאות במחשב הפיתוח:

הגדרה

כדי להגדיר את מחשב הפיתוח לבדיקת יכולות בכמות גדולה:

  1. מורידים ומחלצים את סקריפט לבדיקת יכולות בכמות גדולה (צריך להיכנס לחשבון כדי להוריד).
  2. פועלים לפי השלבים בקובץ ה-README.

הרצת בדיקה של יכולות בכמות גדולה

כדי להריץ בדיקה בכמות גדולה של כתובות:

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

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="AGENT_ID INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"

    מחליפים את המשתנים בערכים שזיהיתם.

    החלפה עם דוגמה
    AGENT_ID המזהה של נציג שירות הלקוחות ב-RCS לעסקים. welcome-bot
    INPUT_FILE הנתיב לקובץ ה-CSV של הקלט. input.csv
    OUTPUT_FILE הנתיב לקובץ ה-CSV של הפלט. output.csv
    NUM_OF_THREADS מספר השרשורים שיוקדשו לבדיקות היכולת. 500
    START_INDEX אופציונלי. הערך בקובץ ה-CSV שמתחילים לבצע בדיקות לגביו. 5
    END_INDEX אופציונלי. הערך בקובץ ה-CSV שצריך להזין כדי להפסיק את הבדיקות. 500
  3. כשהסקריפט מסתיים, פותחים את קובץ ה-CSV של הפלט כדי לראות את התוצאות.