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

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

เครื่องมือ: สคริปต์ตรวจสอบความสามารถแบบเป็นกลุ่ม

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