क्षमता की जांच

यह देखने के लिए कि उपयोगकर्ता के डिवाइस पर आरसीएस की सुविधा चालू है या नहीं और वह आरबीएम एजेंट के साथ कम्यूनिकेट कर सकता है या नहीं, डिवाइस की सुविधाओं का अनुरोध किया जा सकता है. यह पता लगाने पर कि किसी डिवाइस पर कौनसी सुविधाएं काम करती हैं, आपका एजेंट बातचीत को डिवाइस की क्षमताओं के हिसाब से बना सकता है. साथ ही, ऐसे इंटरैक्शन को दिखाने से बच सकता है जिन्हें उपयोगकर्ता के लिए पूरा करना मुश्किल या असंभव हो.

अगर किसी उपयोगकर्ता के डिवाइस पर आरसीएस मैसेज पाने की सुविधा काम नहीं करती है, तो उससे एसएमएस/एमएमएस जैसी अन्य सेवाओं के ज़रिए संपर्क किया जा सकता है.

डिवाइस की क्षमताएं देखना

यहां दिया गया कोड, सुविधा की जांच करता है और जवाब का इंतज़ार करता है. फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, 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");
यह कोड, आरबीएम सैंपल एजेंट का एक हिस्सा है.

क्षमता से जुड़ा जवाब

सुविधा की जांच करने के बाद, आरबीएम प्लैटफ़ॉर्म, 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"
  ]
}

अनुरोध से कोई जवाब या गड़बड़ी का मैसेज मिलता है.

सही जवाब सिर्फ़ तब दिखता है, जब एमएसआईएसडीएन (फ़ोन नंबर) को पिछले 31 दिनों में आरसीएस सेवा से कनेक्ट किया गया हो. इसका मतलब है कि उपयोगकर्ता के डिवाइस ने उस समयसीमा के दौरान, हमारे आरसीएस सर्वर से चेक इन किया है. ऑनलाइन और आरसीएस की सुविधा वाले डिवाइस, औसतन हर एक से चार घंटे में चेक इन करते हैं.

अगर कोई उपयोगकर्ता अपना सिम कार्ड, आरसीएस की सुविधा वाले किसी दूसरे डिवाइस में डालता है, तो पिछले डिवाइस से असोसिएशन हटा दिया जाता है और नया असोसिएशन बनाया जाता है. इससे आरसीएस सेवा में, डिवाइस की सुविधाओं को अपडेट किया जाता है.

अगर किसी सिम कार्ड को किसी ऐसे डिवाइस में डाला जाता है जहां मोबाइल और इंटरनेट सेवा देने वाली कंपनी या मैन्युफ़ैक्चरर ने आरसीएस की सुविधा बंद कर दी है या सिम कार्ड का इस्तेमाल नहीं किया जा रहा है, तो भी आरसीएस सेवा 31 दिनों तक, पहले से जोड़े गए डिवाइस पर मैसेज डिलीवर करने की कोशिश करेगी.

404 कोड वाली गड़बड़ियां इन वजहों से होती हैं:

  • उपयोगकर्ता को आरबीएम से नहीं पहुंचा जा सकता. उदाहरण के लिए, अगर उसके डिवाइस पर आरसीएस की सुविधा काम नहीं करती.

  • उपयोगकर्ता के पास आरसीएस की सुविधा है, लेकिन आपका एजेंट उसके मोबाइल नेटवर्क पर लॉन्च नहीं हुआ है.

ऑफ़लाइन कतार

मैसेज 31 दिनों तक कतार में रहते हैं. डिवाइस के फिर से ऑनलाइन आने पर, उन्हें डिलीवर कर दिया जाता है. इसका मतलब है कि अगर कोई डिवाइस लंबे समय तक (31 दिन तक) ऑफ़लाइन रहता है, तो फिर से कनेक्ट होने पर भी, सूची में मौजूद मैसेज डिलीवर किए जाएंगे. हालांकि, इसके लिए ज़रूरी है कि पिछले 31 दिनों में, एमएसआईएसडीएन, आरसीएस सेवा से कनेक्ट रहा हो.

एक साथ कई सुविधाओं की जांच करना

आरबीएम की मदद से रीच किए जा सकने वाले उपयोगकर्ताओं की संख्या का अनुमान लगाने के लिए, एक साथ कई उपयोगकर्ताओं की जांच करें. एक साथ कई फ़ोन नंबर की जांच करने से पता चलता है कि किसी फ़ोन नंबर पर कॉल किया जा सकता है या नहीं. हालांकि, इससे यह पता नहीं चलता कि उस फ़ोन नंबर पर कौनसी सुविधाएं काम करती हैं.

एक साथ कई नंबरों की जांच करने के लिए, आपको 500 से 10,000 यूनीक फ़ोन नंबर देने होंगे. ज़्यादा नंबरों की जांच करने के लिए, एक से ज़्यादा बार जांच करें. हर मिनट में ज़्यादा से ज़्यादा 600 कॉल किए जा सकते हैं. CSV फ़ाइलों को इनपुट फ़ॉर्मैट के तौर पर इस्तेमाल करने के लिए, एक साथ कई फ़ाइलों की जांच करने वाली स्क्रिप्ट का इस्तेमाल करें. एक साथ कई जांच करने की सुविधा, कैश मेमोरी से पढ़ी जाती है. इसे क्लाइंट, आरसीएस का इस्तेमाल करके ऑर्गैनिक तरीके से अपडेट करते हैं. एजेंट, हर डिवाइस की सुविधाओं का अनुरोध सीधे तौर पर नहीं करते. इस वजह से, हो सकता है कि नतीजे अप-टू-डेट न हों.

एक साथ कई कैपेसिटी की जांच करने पर, उन नंबरों की सूची मिलती है जिन पर आपका एजेंट उन कैरियर पर कॉल कर सकता है जहां इसे लॉन्च किया गया है. साथ ही, सभी कैरियर पर कॉल किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान भी मिलता है. एक साथ कई सुविधाओं की जांच का जवाब देखें.

रीच किए जा सकने वाले कुल उपयोगकर्ताओं का अनुमान लगाना

एक साथ कई नंबरों की जांच करने के जवाबों में, उन फ़ोन नंबरों की सूची शामिल होती है जो आपके एजेंट के लॉन्च किए गए कैरियर (reachableUsers) पर तुरंत संपर्क किए जा सकते हैं. जवाबों में दो वैल्यू भी शामिल होती हैं, जिनसे आपको सभी कैरियर पर संपर्क किए जा सकने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान लगाने में मदद मिल सकती है.

यह कैसे काम करता है

जब आपका एजेंट बड़ी संख्या में नंबरों की जांच करता है, तो आरबीएम उनमें से करीब 75% नंबरों का सैंपल लेता है. इससे सभी कैरियर (totalRandomSampleUserCount में रिपोर्ट किए गए) की जांच की जाती है. आरबीएम, सैंपल में शामिल उन नंबरों की संख्या भी दिखाता है जिन पर आरबीएम काम करता है. इस बात से कोई फ़र्क़ नहीं पड़ता कि कैरियर लॉन्च का स्टेटस (reachableRandomSampleUserCount) क्या है. reachableRandomSampleUserCount को totalRandomSampleUserCount से भागकर, यह अनुमान लगाया जा सकता है कि सभी कैरियर पर लॉन्च होने पर, आपके एजेंट कितने प्रतिशत नंबरों तक पहुंच सकता है.

उदाहरण के लिए, अगर आपने एक साथ कई नंबर की जांच करने के लिए 5,000 फ़ोन नंबर डाले हैं और आरबीएम ने तय किए गए नंबरों में से ~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'])
यह कोड, आरबीएम सैंपल एजेंट का इस्तेमाल करता है.

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 रैंडम सैंपल में मौजूद उन नंबरों की संख्या जो सभी कैरियर पर आरबीएम से रीच किए जा सकते हैं. भले ही, एजेंट को किन कैरियर पर लॉन्च किया गया हो. इस संख्या का इस्तेमाल, सभी कैरियर पर, ऐप्लिकेशन तक पहुंचने वाले उपयोगकर्ताओं की कुल संख्या का अनुमान लगाने के लिए किया जाता है.

टूल: एक साथ कई प्रॉडक्ट की क्षमता की जांच करने वाली स्क्रिप्ट

बल्क कैपेबिलिटी जांच स्क्रिप्ट (डाउनलोड करने के लिए साइन इन करें) इनपुट और आउटपुट फ़ॉर्मैट के तौर पर CSV फ़ाइलों का इस्तेमाल करके, बल्क कैपेबिलिटी जांच करती है. स्क्रिप्ट, एमएसआईएसडीएन की CSV फ़ाइल को पार्स करती है. साथ ही, सूची में शामिल हर डिवाइस की क्षमताओं की जांच करने के लिए, RBM SDK का इस्तेमाल करती है.

500 थ्रेड वाली स्क्रिप्ट को चलाने वाली दो सीपीयू और 4 जीबी रैम वाली वर्चुअल मशीन, करीब 1 हज़ार क्यूपीएस तक पहुंच सकती है. हालांकि, कुल क्यूपीएस, इस्तेमाल की गई मशीन, डिवाइसों के देश, आपके एजेंट के क्षेत्रीय कॉन्फ़िगरेशन, और इस्तेमाल किए गए एपीआई एंडपॉइंट पर निर्भर करता है.

ज़रूरी शर्तें

एक साथ कई प्रॉडक्ट की सुविधाओं की जांच करने के लिए, टूल का इस्तेमाल करने से पहले ये काम करें:

  • इस पर सुविधाओं की जांच करने के लिए, एमएसआईएसडीएन वाली CSV फ़ाइल का पाथ
  • डेवलपमेंट मशीन पर, आपके एजेंट के सेवा खाते की कुंजी का पाथ

इसके अलावा, आपको अपनी डेवलपमेंट मशीन पर ये सॉफ़्टवेयर इंस्टॉल करने होंगे:

सेट अप करें

एक साथ कई सुविधाओं की जांच करने के लिए, अपने डेवलपमेंट मशीन को सेट अप करने के लिए, यह तरीका अपनाएं:

  1. एक साथ कई फ़ाइलों की जांच करने वाली स्क्रिप्ट (डाउनलोड करने के लिए साइन इन करें).
  2. 'इस बारे में जानकारी' में दिया गया तरीका अपनाएं.

एक साथ कई सुविधाओं की जांच करना

एक साथ कई चेक करने के लिए, यह तरीका अपनाएं:

  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 आरसीएस बिज़नेस मैसेजिंग एजेंट का आईडी. 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 फ़ाइल खोलें.