בדיקת יכולות

כדי לבדוק אם במכשיר של משתמש מופעל 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 ימים), ההודעות שמועברות בתור עדיין יימסרו כשהמכשיר יתחבר לאינטרנט, כל עוד מספר הטלפון של המכשיר התחבר לשירות 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 מעבדים ו-4GB של RAM שמריצה את הסקריפט עם 500 תהליכים יכולה להגיע לכ-1, 000 שאילתות לשנייה, אבל מספר השאילתות הכולל לשנייה תלוי במכונה שבה נעשה שימוש, במדינה שבה נמצאים המכשירים, בהגדרות האזוריות של הסוכן ובנקודת הקצה של ה-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 של הפלט כדי לראות את התוצאות.