การตรวจสอบความสามารถ

หากต้องการตรวจสอบว่าอุปกรณ์ของผู้ใช้เปิดใช้ 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) คำตอบก็จะมี 2 ค่าที่จะช่วยให้คุณประมาณจำนวนทั้งหมดของผู้ใช้ที่ติดต่อได้จากผู้ให้บริการทุกราย

เมื่อตัวแทนดำเนินการตรวจสอบความสามารถในการดำเนินการพร้อมกันมากกว่า 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);
});
โค้ดนี้ใช้ Agent ตัวอย่าง 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"));
โค้ดนี้ใช้ Agent ตัวอย่าง 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'])
โค้ดนี้ใช้ Agent ตัวอย่าง 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"}));
โค้ดนี้ใช้ Agent ตัวอย่าง RBM

การตอบกลับการตรวจสอบความสามารถหลายรายการพร้อมกัน

หลังจากเรียกใช้การตรวจสอบความสามารถจำนวนมาก RBM จะส่งคืนการตอบกลับในรูปแบบ JSON

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
ฟิลด์ คำอธิบาย
reachableUsers รายชื่อผู้ใช้ที่เข้าถึงได้ในผู้ให้บริการ ที่ตัวแทนให้บริการในปัจจุบัน
totalRandomSampleUserCount จำนวนตัวอย่างแบบสุ่ม ของจำนวนที่ระบุ โดยปกติคิดเป็นประมาณ 75% ของตัวเลขที่ระบุ
reachableRandomSampleUserCount จำนวนตัวเลขจากการสุ่มตัวอย่างซึ่งเข้าถึง RBM ได้จากผู้ให้บริการทั้งหมด ไม่ว่าผู้ให้บริการของตัวแทนจะเป็นผู้ให้บริการรายใดที่เปิดใช้งานอยู่ในขณะนี้

เครื่องมือ: สคริปต์การตรวจสอบความสามารถเป็นกลุ่ม

สคริปต์การตรวจสอบความสามารถในการทำงานของบัค (ลงชื่อเข้าใช้เพื่อดาวน์โหลด) ตรวจสอบความสามารถในการทำงานแบบเป็นกลุ่มโดยใช้ไฟล์ CSV เป็นรูปแบบอินพุตและเอาต์พุต สคริปต์จะแยกวิเคราะห์ไฟล์ CSV ของ MSISDN และใช้ RBM SDK เพื่อตรวจสอบความสามารถของอุปกรณ์ทั้งหมดที่แสดงอยู่

เครื่องเสมือนที่มี CPU 2 ตัวและ RAM 4 GB ที่เรียกใช้สคริปต์ด้วยเทรด 500 รายการจะมีจำนวน QPS ได้ประมาณ 1,000 QPS แต่ QPS โดยรวมจะขึ้นอยู่กับเครื่องที่ใช้ ประเทศของอุปกรณ์ การกำหนดค่าระดับภูมิภาคของ Agent และปลายทาง API ที่ใช้

ข้อกำหนดเบื้องต้น

ก่อนใช้เครื่องมือเพื่อตรวจสอบความสามารถหลายรายการพร้อมกัน ให้ดูข้อมูลต่อไปนี้

  • เส้นทางไปยังไฟล์ CSV ที่มี MSISDN เพื่อตรวจสอบความสามารถ
  • เส้นทางไปยังคีย์บัญชีบริการของ Agent ในเครื่องการพัฒนาของคุณ

นอกจากนี้ คุณจะต้องติดตั้งซอฟต์แวร์ต่อไปนี้บนเครื่องพัฒนาซอฟต์แวร์

ตั้งค่า

  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 จำนวนเทรดสำหรับตรวจสอบความสามารถโดยเฉพาะ 500
    START_INDEX ไม่บังคับ ค่าในไฟล์ CSV ที่จะ เริ่มทำการตรวจสอบ 5
    END_INDEX ไม่บังคับ ค่าในไฟล์ CSV ที่จะสิ้นสุดการตรวจสอบ 500
  3. เมื่อสคริปต์ดำเนินการเสร็จเรียบร้อยแล้ว ให้เปิดไฟล์ CSV ที่แสดงผลลัพธ์เพื่อดูผลลัพธ์