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

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

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");
โค้ดนี้เป็นข้อความที่ตัดตอนมาจากตัวแทนตัวอย่าง 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": [
    "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);
});
โค้ดนี้ใช้ตัวอย่าง RBM เอเจนต์

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"));
โค้ดนี้ใช้ตัวอย่าง 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'])
โค้ดนี้ใช้ตัวแทนตัวอย่างของ 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"}));
โค้ดนี้ใช้ตัวอย่าง RBM เอเจนต์

การตอบกลับการตรวจสอบความสามารถในการดำเนินการแบบเป็นกลุ่ม

หลังจากเรียกใช้การตรวจสอบความสามารถแบบกลุ่มแล้ว 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 เพื่อตรวจสอบความสามารถ
  • เส้นทางไปยังคีย์บัญชีบริการของตัวแทนในเครื่องพัฒนา

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

ตั้งค่า

หากต้องการตั้งค่าเครื่องพัฒนาสำหรับการตรวจสอบความสามารถแบบกลุ่ม ให้ทำดังนี้

  1. ดาวน์โหลดและแตกไฟล์ สคริปต์ตรวจสอบความสามารถในการอัปโหลดหลายรายการพร้อมกัน (ลงชื่อเข้าใช้เพื่อ ดาวน์โหลด)
  2. ทำตามขั้นตอนใน README

เรียกใช้การตรวจสอบความสามารถแบบกลุ่ม

หากต้องการตรวจสอบหลายรายการพร้อมกัน ให้ทำตามขั้นตอนต่อไปนี้

  1. ในเทอร์มินัล ให้ไปที่ไดเรกทอรีรูทของสคริปต์
  2. เรียกใช้คำสั่งต่อไปนี้

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