בדיקת יכולות

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

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

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

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

cURL

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_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('../libs/rbm_api_helper');

// 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.samples.lib.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": [
    "REVOCATION",
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
  ]
}

אם שולחים בדיקת יכולות למשתמש ש-RBM לא מאפשר גישה אליו – למשל, אם המכשיר שלו לא תומך ב-RCS – פלטפורמת RBM תחזיר שגיאת 404.

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

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

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

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

בדיקות של יכולות בכמות גדולה יכולות להתבצע עד 600 שאילתות לדקה (QPM).

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

הערכה של סך כל המשתמשים שניתן להגיע אליהם

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

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

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

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

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

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

מספרי טלפון חייבים להיות בפורמט E.164. לדוגמה, '+12223334444'.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet \
-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('../libs/rbm_api_helper');

// 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.samples.lib.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, ללא קשר לספקים של הסוכן שמופעלים כרגע.

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

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

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

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

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

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

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

הגדרה

  1. במחשב הפיתוח, מורידים ומחלצים את סקריפט לבדיקת יכולות בכמות גדולה (כניסה להורדה).
  2. עוברים לספריית הבסיס של הסקריפט.
  3. משנים את השם של המפתח של חשבון השירות ל-"rbm-agent-service-account-credentials.json", ומעבירים את המפתח של חשבון השירות לספרייה "src/main/resources".

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

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

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

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

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