หากต้องการตรวจสอบว่าอุปกรณ์ของผู้ใช้รองรับ RCS และสามารถสื่อสารกับตัวแทน RBM ได้หรือไม่ คุณสามารถขอความสามารถของอุปกรณ์ได้ การระบุฟีเจอร์ที่อุปกรณ์รองรับ (หากมี) จะช่วยให้ตัวแทนปรับแต่งการสนทนาให้เหมาะกับความสามารถของอุปกรณ์ และหลีกเลี่ยงการแสดงการโต้ตอบที่ผู้ใช้ทำได้ยากหรือทำไม่ได้
หากอุปกรณ์ของผู้ใช้ไม่สามารถรับข้อความ RCS ได้เลย คุณสามารถสื่อสารกับผู้ใช้ผ่านบริการอื่นๆ เช่น SMS/MMS ได้
ตรวจสอบความสามารถของอุปกรณ์
โค้ดต่อไปนี้จะส่งการตรวจสอบความสามารถและรอการตอบกลับ ดูตัวเลือกการจัดรูปแบบและค่าได้ที่
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");
การตอบกลับความสามารถ
หลังจากเรียกใช้การตรวจสอบความสามารถแล้ว แพลตฟอร์ม RBM จะแสดงรายการ ฟีเจอร์ ที่อุปกรณ์ที่ระบุรองรับในรูปแบบ 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", "PDF_IN_RICH_CARDS" ] }
คำขอจะแสดงผลการตอบกลับหรือข้อผิดพลาด
ระบบจะแสดงผลการตอบกลับที่สำเร็จ ก็ต่อเมื่อ MSISDN (หมายเลขโทรศัพท์) เชื่อมต่อกับบริการ RCS ภายใน 31 วันที่ผ่านมา ซึ่งหมายความว่าอุปกรณ์ของผู้ใช้ได้ลงทะเบียนกับเซิร์ฟเวอร์ RCS ของเราภายในกรอบเวลาดังกล่าว อุปกรณ์ที่ออนไลน์และรองรับ RCS จะลงทะเบียนทุกๆ 1-4 ชั่วโมงโดยเฉลี่ย
หากผู้ใช้ย้ายซิมการ์ดไปยังอุปกรณ์อื่นที่รองรับ RCS ระบบจะนำการเชื่อมโยงอุปกรณ์ก่อนหน้าออกและสร้างการเชื่อมโยงใหม่ ซึ่งจะอัปเดตความสามารถของอุปกรณ์ในบริการ RCS
หากใส่ซิมการ์ดในอุปกรณ์ที่ผู้ให้บริการหรือผู้ผลิตปิดใช้ RCS หรือหากไม่ได้ใช้ซิมการ์ด บริการ RCS จะยังคงพยายามส่งข้อความไปยังอุปกรณ์ที่เชื่อมโยงไว้ก่อนหน้านี้เป็นเวลาสูงสุด 31 วัน
สาเหตุที่ทำให้เกิดข้อผิดพลาด 404
RBM ไม่สามารถติดต่อผู้ใช้ได้ เช่น หากอุปกรณ์ของผู้ใช้ไม่รองรับ RCS
ผู้ใช้มี RCS แต่ตัวแทนของคุณไม่ได้เปิดตัวในเครือข่ายมือถือของผู้ใช้
การจัดคิวแบบออฟไลน์
ระบบจะจัดคิวข้อความเป็นเวลาสูงสุด 31 วันและส่งเมื่ออุปกรณ์กลับมาออนไลน์ ซึ่งหมายความว่าแม้ว่าอุปกรณ์จะออฟไลน์เป็นระยะเวลานาน (สูงสุด 31 วัน) ระบบจะยังคงส่งข้อความที่จัดคิวไว้เมื่อมีการเชื่อมต่อใหม่ ตราบใดที่ MSISDN เชื่อมต่อกับบริการ RCS ภายใน 31 วันที่ผ่านมา
การตรวจสอบความสามารถแบบเป็นกลุ่ม
หากต้องการประมาณจำนวนผู้ใช้ที่ RBM ติดต่อได้ ให้ทำการตรวจสอบความสามารถแบบเป็นกลุ่ม การตรวจสอบแบบเป็นกลุ่ม จะระบุว่าหมายเลขโทรศัพท์ติดต่อได้หรือไม่ แต่จะไม่ระบุ ฟีเจอร์ ที่หมายเลขโทรศัพท์รองรับ
สำหรับการตรวจสอบความสามารถแบบเป็นกลุ่มแต่ละครั้ง คุณต้องระบุหมายเลขโทรศัพท์ที่ไม่ซ้ำกัน 500-10,000 หมายเลข หากต้องการตรวจสอบหมายเลขเพิ่มเติม ให้ทำการตรวจสอบหลายครั้ง คุณสามารถโทรได้สูงสุด 600 ครั้งต่อนาที ใช้สคริปต์การตรวจสอบความสามารถแบบเป็นกลุ่มเพื่อใช้ไฟล์ CSV เป็นรูปแบบอินพุต การตรวจสอบแบบเป็นกลุ่มจะอ่านจากแคชความสามารถ ซึ่งไคลเอ็นต์จะอัปเดตโดยอัตโนมัติโดยใช้ RCS ตัวแทนจะไม่ขอความสามารถของอุปกรณ์แต่ละเครื่องโดยตรง ด้วยเหตุนี้ ผลลัพธ์จึงอาจไม่เป็นปัจจุบัน
การตรวจสอบความสามารถแบบเป็นกลุ่มจะแสดงรายการหมายเลขที่ตัวแทนติดต่อได้ในผู้ให้บริการที่เปิดตัว รวมถึงการประมาณจำนวนผู้ใช้ทั้งหมดที่ติดต่อได้ในผู้ให้บริการทุกราย ดูการตอบกลับการตรวจสอบความสามารถแบบเป็นกลุ่ม
ประมาณจำนวนผู้ใช้ทั้งหมดที่ติดต่อได้
แม้ว่าการตรวจสอบแบบกลุ่ม การตอบกลับ จะมีรายการหมายเลขโทรศัพท์
ที่ติดต่อได้ทันทีในผู้ให้บริการที่เปิดตัวของตัวแทน
(reachableUsers) แต่การตอบกลับยังรวมถึงค่า 2 ค่าที่ช่วยให้คุณประมาณ
จำนวนผู้ใช้ทั้งหมดที่ติดต่อได้ในผู้ให้บริการทุกราย
วิธีการทำงาน
เมื่อตัวแทนทำการตรวจสอบความสามารถแบบเป็นกลุ่ม RBM จะสุ่มตัวอย่างหมายเลขเหล่านั้นประมาณ 75% เพื่อตรวจสอบผู้ให้บริการทุกราย (รายงานใน totalRandomSampleUserCount) นอกจากนี้ RBM ยังแสดงผลจำนวนหมายเลขที่ RBM ติดต่อได้จากตัวอย่างแบบสุ่ม ไม่ว่าสถานะการเปิดตัวของผู้ให้บริการจะเป็นอย่างไร (reachableRandomSampleUserCount) การนำ reachableRandomSampleUserCount มาหารด้วย totalRandomSampleUserCount จะช่วยให้คุณประมาณเปอร์เซ็นต์ของหมายเลขที่ตัวแทนติดต่อได้หากเปิดตัวในผู้ให้บริการทุกราย
ตัวอย่างเช่น หากคุณระบุหมายเลขโทรศัพท์ 5,000 หมายเลขในการตรวจสอบความสามารถแบบเป็นกลุ่ม และ RBM สุ่มตัวอย่างหมายเลขที่ระบุประมาณ 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); });
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"));
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 จะแสดงผลการตอบกลับในรูปแบบ JSON
{
"reachableUsers": [
"PHONE_NUMBER"
],
"totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
"reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}| ช่อง | คำอธิบาย |
|---|---|
reachableUsers
|
รายการผู้ใช้ที่ติดต่อได้ในผู้ให้บริการที่เปิดตัวของตัวแทน |
totalRandomSampleUserCount
|
จำนวนตัวอย่างแบบสุ่มของหมายเลขที่ระบุ โดยปกติจะอยู่ที่ประมาณ 75% ของหมายเลขที่ระบุ |
reachableRandomSampleUserCount
|
จำนวนหมายเลขจากตัวอย่างแบบสุ่มที่ RBM ติดต่อได้ในผู้ให้บริการทุกราย ไม่ว่าตัวแทนจะเปิดตัวในผู้ให้บริการรายใดก็ตาม จำนวนนี้ใช้เพื่อประมาณจำนวนผู้ใช้ทั้งหมดที่ติดต่อได้ในผู้ให้บริการทุกราย |
reachableUsersMap
|
เอาต์พุตเท่านั้น การแมปจากรหัสผู้ให้บริการไปยังรายการผู้ใช้ที่ติดต่อได้ในผู้ให้บริการรายนั้น ช่องนี้จะแสดงข้อมูลสำหรับหมายเลขโทรศัพท์ในสหรัฐอเมริกาเท่านั้น |
เครื่องมือ: สคริปต์การตรวจสอบความสามารถแบบเป็นกลุ่ม
สคริปต์การตรวจสอบความสามารถแบบเป็นกลุ่ม Buck Capability Check Script (ลงชื่อเข้าใช้เพื่อ ดาวน์โหลด) ทำการตรวจสอบความสามารถแบบเป็นกลุ่มโดยใช้ไฟล์ CSV เป็นรูปแบบอินพุตและเอาต์พุต สคริปต์จะแยกวิเคราะห์ไฟล์ CSV ของ MSISDN และใช้ RBM SDK เพื่อตรวจสอบความสามารถของอุปกรณ์ทุกเครื่องที่ระบุไว้
เครื่องเสมือนที่มี CPU 2 ตัวและ RAM 4 GB ที่เรียกใช้สคริปต์ด้วย 500 เทรดสามารถเข้าถึง QPS ได้ประมาณ 1,000 รายการ แต่ QPS โดยรวมจะขึ้นอยู่กับเครื่องที่ใช้ ประเทศของอุปกรณ์ การกำหนดค่าระดับภูมิภาคของเอเจนต์ และปลายทาง API ที่ใช้
ข้อกำหนดเบื้องต้น
ก่อนใช้เครื่องมือเพื่อทำการตรวจสอบความสามารถแบบเป็นกลุ่ม ให้เตรียมสิ่งต่อไปนี้
- เส้นทางไปยังไฟล์ CSV ที่มี MSISDN เพื่อทำการตรวจสอบความสามารถ
- เส้นทางไปยังคีย์บัญชีบริการของเอเจนต์ในคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์
นอกจากนี้ คุณต้องติดตั้งซอฟต์แวร์ต่อไปนี้ในเครื่องพัฒนา
- Apache Maven 3.3.9 ขึ้นไป
- Java 8
ตั้งค่า
หากต้องการตั้งค่าคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์สำหรับการตรวจสอบความสามารถแบบเป็นกลุ่ม ให้ทำดังนี้
- ดาวน์โหลดและแยกไฟล์ Bulk Capability Check Script (ลงชื่อเข้าใช้เพื่อ ดาวน์โหลด).
- ทำตามขั้นตอนในไฟล์ README
เรียกใช้การตรวจสอบความสามารถแบบเป็นกลุ่ม
หากต้องการเรียกใช้การตรวจสอบแบบเป็นกลุ่ม ให้ทำตามขั้นตอนต่อไปนี้
- ในเทอร์มินัล ให้ไปที่ไดเรกทอรีรากของสคริปต์
เรียกใช้คำสั่งต่อไปนี้
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 for Business welcome-botINPUT_FILE เส้นทางไปยังไฟล์ CSV อินพุต input.csvOUTPUT_FILE เส้นทางไปยังไฟล์ CSV เอาต์พุต output.csvNUM_OF_THREADS จำนวนเธรดที่จะใช้สำหรับการตรวจสอบความสามารถ 500START_INDEX ไม่บังคับ ค่าในไฟล์ CSV ที่จะใช้เริ่มการตรวจสอบ 5END_INDEX ไม่บังคับ ค่าในไฟล์ CSV ที่จะใช้สิ้นสุดการตรวจสอบ 500เมื่อสคริปต์เสร็จสมบูรณ์ ให้เปิดไฟล์ CSV เอาต์พุตเพื่อดูผลลัพธ์