בדיקת יכולות

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

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

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

הקוד הבא שולח בדיקת יכולת וממתין לתגובה. עבור את האפשרויות של עיצוב וערכים: 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": [
    "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?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 אצל אילו ספקים יופעל הנציג.

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

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

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

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

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

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

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

הגדרה

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

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

  1. בטרמינל, עוברים לספריית הבסיס (root) של הסקריפט.
  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 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
  3. כשהסקריפט מסתיים, פותחים את קובץ הפלט בפורמט CSV כדי לראות את התוצאות.