如要確認使用者的裝置是否支援 RCS,以及是否能夠與 RBM 服務代理通訊,您可以要求取得裝置的功能。找出裝置支援的功能 (如果有的話) 可讓代理程式根據裝置功能量身打造對話,避免向使用者顯示難以完成或無法完成的互動。
如果使用者的裝置完全無法接收 RCS 訊息,您可以透過簡訊等其他服務與使用者通訊。
傳送功能檢查
下列程式碼會傳送功能檢查,並等待回應。如需格式設定和值選項,請參閱 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": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", ] }
如果您傳送功能檢查給 RBM 無法連線的使用者 (例如,如果使用者的裝置不支援 RCS),RBM 平台會傳回 404
錯誤。
如果您在尚未推出代理程式的網路上,向 RCS 使用者傳送功能檢查,RBM 平台會傳回 403
錯誤。
大量功能檢查
如要預估 RBM 可觸及的使用者人數,請進行大量功能檢查。大量檢查功能可指出電話號碼是否可撥通,但無法指出電話號碼支援哪些功能。
每個大量檢查功能最多可指定 10,000 個電話號碼。如要檢查更多號碼,請執行多項檢查。使用大量檢查功能指令碼,將 CSV 檔案做為輸入格式。
大量能力檢查作業的查詢數上限為每分鐘 600 次 (QPM)。
大量能力檢查會傳回可供服務專員聯絡的號碼清單,以及所有電信業者可觸及的使用者總數估計值。請參閱「大量功能檢查回應」。
預估可觸及的使用者總數
雖然大量檢查回應包含代理程式在已推出的電信業者 (reachableUsers
) 上立即可及的電話號碼清單,但回應也包含兩個值,可協助您估算所有電信業者可及的使用者總數。
當代理程式針對超過 500 組電話號碼執行大量功能檢查時,RBM 會隨機取樣這些號碼約 75% 以檢查所有電信業者 (如 totalRandomSampleUserCount
中回報)。RBM 也會從隨機樣本傳回 RBM 可連線數據數,無論電信業者啟用狀態為何 (reachableRandomSampleUserCount
)。將 reachableRandomSampleUserCount
除以 totalRandomSampleUserCount
,即可預估代理程式啟動的所有數字百分比。
舉例來說,如果您在大量能力檢查中指定 5,000 個電話號碼,而 RBM 隨機抽樣約 75% 的指定號碼,totalRandomSampleUserCount
可能會是 3750
。如果 reachableRandomSampleUserCount
為 3000
,表示可連線至 80% 的取樣數字。
測試隨機樣本可能會導致百分比差異。為考量隨機抽樣法帶來的影響,請使用大量的電話號碼執行大量能力檢查。您也可以多次使用相同批次的數字執行檢查,然後將結果平均化,以便將隨機取樣行為標準化。
傳送大量功能檢查
以下程式碼會傳送大量功能檢查,並等待回應。如需格式設定和值選項,請參閱 users.batchGet
。
電話號碼格式必須為 E.164。例如「+12223334444」。
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這個程式碼使用 RBM 範例代理程式。({"+12223334444", "+12223334444"}));
大量能力檢查回應
執行大量能力檢查後,RBM 會傳回 JSON 格式的回應。
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
欄位 | 說明 |
---|---|
reachableUsers
|
代理商已推出的電信業者中,可聯絡的使用者清單。 |
totalRandomSampleUserCount
|
指定數字的隨機樣本計數。通常為指定數字的 75% 左右。 |
reachableRandomSampleUserCount
|
在所有電信業者中,從隨機樣本中計算出可透過 RBM 聯絡的電話號碼數量,不論代理程式是在哪個電信業者上啟動。 |
工具:大量功能檢查指令碼
Buck Capability Check Script (登入下載) 以 CSV 檔案做為輸入和輸出格式執行大量功能檢查。 這個指令碼會剖析 MSISDN 的 CSV 檔案,並使用 RBM SDK 檢查每個列出的裝置功能。
虛擬機器的 CPU 為 2 個,RAM 為 4 GB,執行具有 500 個執行緒的指令碼,可達到約 1K QPS,但整體 QPS 取決於所用機器、裝置所在國家/地區、代理程式的區域設定,以及使用的 API 端點。
必要條件
使用這項工具執行大量功能檢查前,請先取得下列項目:
- 包含 MSISDN 的 CSV 檔案路徑,用於執行功能檢查
- 開發機器上代理程式服務帳戶金鑰的路徑
此外,您需要在開發機器上安裝下列軟體:
- 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 Business Messaging 服務專員 ID 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 檔案來查看結果。