หากต้องการตรวจสอบว่าอุปกรณ์ของผู้ใช้เปิดใช้ 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", "ACTION_COMPOSE", ] }
คำขอจะแสดงผลลัพธ์เป็นคำตอบหรือข้อผิดพลาด
ระบบจะแสดงการตอบกลับที่สำเร็จเฉพาะในกรณีที่ MSISDN (หมายเลขโทรศัพท์) เชื่อมต่อกับบริการ RCS ภายใน 24 ชั่วโมงที่ผ่านมา ซึ่งหมายความว่าอุปกรณ์ของผู้ใช้ได้เช็คอินกับเซิร์ฟเวอร์ RCS ของเราภายในกรอบเวลาดังกล่าว อุปกรณ์จะตรวจสอบเป็นระยะๆ (ทุก 1-4 ชั่วโมง) ดังนั้นอุปกรณ์ที่รับ RCS ได้โดยทั่วไปควรตรวจสอบภายใน 24 ชั่วโมงที่ผ่านมา
สาเหตุที่ทำให้เกิดข้อผิดพลาด 404 มีดังนี้
RBM ไม่สามารถเข้าถึงผู้ใช้ได้ เช่น ในกรณีที่อุปกรณ์ของผู้ใช้ไม่รองรับ RCS
ผู้ใช้มี RCS แต่ตัวแทนของคุณไม่เปิดใช้งานในเครือข่ายมือถือ
การจัดคิวแบบออฟไลน์
ระบบจะจัดคิวข้อความไว้สูงสุด 30 วันและนำส่งเมื่ออุปกรณ์กลับมาออนไลน์ อุปกรณ์ต้องแสดงสัญญาณของกิจกรรม RCS ภายใน 24 ชั่วโมงหลังจากที่ส่งข้อความเพื่อให้แน่ใจว่าข้อความได้รับการนำส่ง ซึ่งหมายความว่าแม้ว่าอุปกรณ์จะออฟไลน์เป็นเวลานาน (สูงสุด 30 วัน) ข้อความที่รอดำเนินการจะยังคงส่งเมื่อเชื่อมต่ออีกครั้ง ตราบใดที่ตรงกับกรอบเวลากิจกรรม 24 ชั่วโมง ณ เวลาส่ง
การตรวจสอบความสามารถแบบเป็นกลุ่ม
หากต้องการประมาณจํานวนผู้ใช้ที่เข้าถึงได้โดยใช้ RBM ให้ทําการตรวจสอบความสามารถแบบเป็นกลุ่ม การตรวจสอบแบบเป็นกลุ่มจะระบุว่าหมายเลขโทรศัพท์ติดต่อได้หรือไม่ แต่ไม่ระบุฟีเจอร์ที่หมายเลขโทรศัพท์รองรับ
คุณต้องระบุหมายเลขโทรศัพท์ที่ไม่ซ้ำกัน 500-10,000 หมายเลขสำหรับการตรวจสอบความสามารถแบบเป็นกลุ่มแต่ละครั้ง หากต้องการตรวจสอบหมายเลขเพิ่มเติม ให้ทำการตรวจสอบหลายครั้ง คุณโทรได้สูงสุด 600 สายต่อนาที ใช้สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่มเพื่อใช้ไฟล์ CSV เป็นรูปแบบอินพุต การตรวจสอบแบบเป็นกลุ่มจะอ่านจากแคชความสามารถ ซึ่งลูกค้าจะอัปเดตเองโดยใช้ RCS ตัวแทนจะไม่ขอความสามารถของอุปกรณ์แต่ละเครื่องโดยตรง ด้วยเหตุนี้ ผลการค้นหาจึงอาจไม่เป็นปัจจุบัน
การตรวจสอบความสามารถแบบเป็นกลุ่มจะแสดงรายการหมายเลขที่ตัวแทนสามารถเข้าถึงได้ในแต่ละผู้ให้บริการที่เปิดตัว รวมถึงค่าประมาณของจํานวนผู้ใช้ทั้งหมดที่เข้าถึงได้ในทุกผู้ให้บริการ โปรดดูคำตอบการตรวจสอบความสามารถแบบเป็นกลุ่ม
ประมาณจํานวนผู้ใช้ทั้งหมดที่เข้าถึงได้
แม้ว่าคำตอบของการตรวจสอบแบบเป็นกลุ่มจะมีรายการหมายเลขโทรศัพท์ที่ติดต่อได้ทันทีในผู้ให้บริการที่เปิดตัวของตัวแทน (reachableUsers
) แต่คำตอบยังมีค่า 2 ค่าที่ช่วยคุณประมาณจำนวนผู้ใช้ทั้งหมดที่เข้าถึงได้ในทุกผู้ให้บริการด้วย
วิธีการทำงาน
เมื่อตัวแทนของคุณทำการทดสอบความสามารถแบบเป็นกลุ่ม RBM จะสุ่มตัวอย่างหมายเลขเหล่านั้นประมาณ 75% เพื่อตรวจสอบผู้ให้บริการทุกราย (รายงานใน totalRandomSampleUserCount
) และยังแสดงจํานวนหมายเลขที่ 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 ในผู้ให้บริการทุกราย ไม่ว่าจะเปิดตัวตัวแทนในผู้ให้บริการรายใดก็ตาม จํานวนนี้ใช้เพื่อระบุค่าประมาณคร่าวๆ ของจํานวนผู้ใช้ทั้งหมดที่เข้าถึงได้ในทุกเครือข่าย |
เครื่องมือ: สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่ม
สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่ม (ลงชื่อเข้าใช้เพื่อดาวน์โหลด) จะตรวจสอบความสามารถแบบเป็นกลุ่มโดยใช้ไฟล์ 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 welcome-bot
INPUT_FILE เส้นทางไปยังไฟล์ CSV อินพุต input.csv
OUTPUT_FILE เส้นทางไปยังไฟล์ CSV เอาต์พุต output.csv
NUM_OF_THREADS จำนวนเธรดที่จะใช้สำหรับการตรวจสอบความสามารถ 500
START_INDEX ไม่บังคับ ค่าในไฟล์ CSV เพื่อเริ่มการตรวจสอบ 5
END_INDEX ไม่บังคับ ค่าในไฟล์ CSV สำหรับสิ้นสุดการตรวจสอบ 500
เมื่อสคริปต์ทำงานเสร็จแล้ว ให้เปิดไฟล์ CSV ผลลัพธ์เพื่อดูผลลัพธ์