כדי לבדוק אם המכשיר של המשתמש מופעל ב-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); });
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");
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')
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 מחזירה רשימה של התכונות שנתמכות במכשיר שצוין, בפורמט JSON.
{ "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", "ACTION_OPEN_URL_IN_WEBVIEW", "ACTION_COMPOSE", ] }
הבקשה מחזירה תשובה או שגיאה.
תגובה מוצלחת תוחזר רק אם מספר הטלפון (MSISDN) היה מחובר לשירות RCS ב-24 השעות האחרונות.
אלה הגורמים לשגיאות 404:
אי אפשר להגיע למשתמש באמצעות RBM – לדוגמה, אם המכשיר שלו לא תומך ב-RCS.
למשתמש יש RCS, אבל הסוכן שלכם לא הופעל ברשת הסלולרית שלו.
שמירת בקשות בתור במצב אופליין
ההודעות נשמרות בתור למשך עד 30 יום ונשלחות כשהמכשיר חוזר לאינטרנט. כדי לוודא שההודעה נשלחה, צריך להיות במכשיר סימנים לפעילות RCS בתוך 24 שעות ממועד השליחה. כלומר, גם אם המכשיר יהיה במצב אופליין למשך תקופה ממושכת (עד 30 יום), ההודעות שבתור עדיין יישלחו אחרי החיבור מחדש, כל עוד חלון הפעילות של 24 השעות התקיים בזמן השליחה.
בדיקות יכולות בכמות גדולה
כדי להעריך את מספר המשתמשים שאפשר להגיע אליהם באמצעות 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); });
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"));
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'])
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"}));
תגובה לבדיקת יכולות בכמות גדולה
אחרי שמריצים בדיקת יכולות בכמות גדולה, המערכת מחזירה תשובה בפורמט JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
שדה | תיאור |
---|---|
reachableUsers
|
רשימה של משתמשים שאפשר ליצור איתם קשר בחברות הסלולר שהסוכן השיק. |
totalRandomSampleUserCount
|
מספר הדגימה האקראית של מספרים שצוינו. בדרך כלל כ-75% מהמספרים שצוינו. |
reachableRandomSampleUserCount
|
מספר המספרים מהדגימה האקראית שניתנים להגיע אליהם באמצעות RBM בכל הספקים, ללא קשר לספקים שבהם הסוכן הופעל. המספר הזה משמש כדי לספק הערכה גסה של המספר הכולל של המשתמשים שאפשר להגיע אליהם בכל הספקים. |
כלי: סקריפט לבדיקת יכולות בכמות גדולה
Buck Capability Check Script (Sign in to download) מבצע בדיקות יכולות בכמות גדולה באמצעות קובצי CSV כפורמטים של קלט ופלט. הסקריפט מנתח את קובץ ה-CSV של מספרי ה-MSISDN ומשתמש ב-RBM SDK כדי לבדוק את היכולות של כל מכשיר שמופיע ברשימה.
מכונה וירטואלית עם 2 מעבדים ו-4GB של זיכרון RAM שמריצה את הסקריפט עם 500 חוטים יכולה להגיע לכ-1, 000 בקשות לשנייה, אבל מספר הבקשות לשנייה הכולל תלוי במכונה שבה משתמשים, במדינה שבה נמצאים המכשירים, בהגדרה האזורית של הסוכן ובנקודת הקצה של ה-API שבה משתמשים.
דרישות מוקדמות
לפני שמשתמשים בכלי כדי לבצע בדיקת יכולות בכמות גדולה, צריך לקבל את הפרטים הבאים:
- הנתיב לקובץ CSV עם מספרי MSISDN לביצוע בדיקות יכולות
- הנתיב למפתח של חשבון השירות של הסוכן במכונה שלכם לפיתוח
בנוסף, צריך להתקין את התוכנות הבאות במכונה לפיתוח:
- Apache Maven מגרסה 3.3.9 ואילך
- Java 8
הגדרה
כדי להגדיר את מכונת הפיתוח לבדיקת יכולות בכמות גדולה:
- מורידים את סקריפט לבדיקת יכולות בכמות גדולה (צריך להיכנס כדי להוריד).
- פועלים לפי השלבים שמפורטים בקובץ README.
הפעלת בדיקה של יכולות בכמות גדולה
כדי להריץ בדיקה בכמות גדולה, פועלים לפי השלבים הבאים:
- בטרמינל, עוברים לספריית השורש של הסקריפט.
מריצים את הפקודות הבאות:
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 Business Messaging. welcome-bot
INPUT_FILE הנתיב לקובץ ה-CSV של הקלט. input.csv
OUTPUT_FILE הנתיב לקובץ ה-CSV של הפלט. output.csv
NUM_OF_THREADS מספר השרשורים שמיועדים לבדיקות היכולות. 500
START_INDEX זה שינוי אופציונלי. הערך בקובץ ה-CSV שבו מתחילים את בדיקות התאימות. 5
END_INDEX זה שינוי אופציונלי. הערך בקובץ ה-CSV שצריך לסיים את הבדיקות אחריו. 500
בסיום ההרצה של הסקריפט, פותחים את קובץ ה-CSV של הפלט כדי להציג את התוצאות.