หากต้องการตรวจสอบว่าอุปกรณ์ของผู้ใช้เปิดใช้ 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 Agent ไม่ได้ขอความสามารถของอุปกรณ์แต่ละเครื่องโดยตรง ด้วยเหตุนี้ ผลการค้นหาจึงอาจไม่อัปเดต
การตรวจสอบความสามารถในการส่งข้อความจำนวนมากจะแสดงรายการหมายเลขที่ตัวแทนของคุณติดต่อได้ใน ผู้ให้บริการที่เปิดตัว รวมถึงค่าประมาณจำนวนผู้ใช้ทั้งหมดที่ ติดต่อได้ในผู้ให้บริการทั้งหมด ดูการตอบกลับการตรวจสอบความสามารถแบบกลุ่ม
ประมาณจำนวนผู้ใช้ทั้งหมดที่เข้าถึงได้
แม้ว่าการตอบกลับการตรวจสอบแบบเป็นกลุ่มจะมีรายการหมายเลขโทรศัพท์
ที่เข้าถึงได้ทันทีในผู้ให้บริการที่เอเจนต์ของคุณเปิดตัว
(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
|
เอาต์พุตเท่านั้น แผนที่ของรหัสผู้ให้บริการขนส่งไปยังรายชื่อผู้ใช้ที่เข้าถึงได้ ในผู้ให้บริการขนส่งนั้น ระบบจะป้อนข้อมูลในช่องนี้สำหรับหมายเลขโทรศัพท์ในสหรัฐอเมริกาเท่านั้น |
เครื่องมือ: สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่ม
สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่ม (ลงชื่อเข้าใช้เพื่อ ดาวน์โหลด) จะตรวจสอบความสามารถแบบเป็นกลุ่มโดยใช้ไฟล์ 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
ตั้งค่า
หากต้องการตั้งค่าเครื่องพัฒนาสำหรับการตรวจสอบความสามารถแบบกลุ่ม ให้ทำดังนี้
- ดาวน์โหลดและแตกไฟล์ สคริปต์ตรวจสอบความสามารถในการอัปโหลดหลายรายการพร้อมกัน (ลงชื่อเข้าใช้เพื่อ ดาวน์โหลด)
- ทำตามขั้นตอนใน 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 เอาต์พุตเพื่อดูผลลัพธ์