หากต้องการตรวจสอบว่าอุปกรณ์ของผู้ใช้เปิดใช้ 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โค้ดนี้ใช้ Agent ตัวอย่าง RBM({"+12223334444", "+12223334444"}));
การตอบกลับการตรวจสอบความสามารถหลายรายการพร้อมกัน
หลังจากเรียกใช้การตรวจสอบความสามารถจำนวนมาก 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 ในเครื่องการพัฒนาของคุณ
นอกจากนี้ คุณจะต้องติดตั้งซอฟต์แวร์ต่อไปนี้บนเครื่องพัฒนาซอฟต์แวร์
- Apache Maven 3.3.9 ขึ้นไป
- Java 8
ตั้งค่า
- ดาวน์โหลดและแตกไฟล์ สคริปต์การตรวจสอบความสามารถในการทำงานเป็นกลุ่ม (ลงชื่อเข้าใช้เพื่อดาวน์โหลด)
- ไปที่ไดเรกทอรีรากของสคริปต์
- เปลี่ยนชื่อคีย์บัญชีบริการเป็น "rbm-agent-service-account-credentials.json" และย้ายคีย์บัญชีบริการไปไว้ในไดเรกทอรี "src/main/resources"
เรียกใช้การตรวจสอบจำนวนมาก
- ในเทอร์มินัล ให้ไปที่ไดเรกทอรีรากของสคริปต์
เรียกใช้คำสั่งต่อไปนี้
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
เมื่อสคริปต์ดำเนินการเสร็จเรียบร้อยแล้ว ให้เปิดไฟล์ CSV ที่แสดงผลลัพธ์เพื่อดูผลลัพธ์