功能檢查

如要確認使用者的裝置是否支援 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。如果 reachableRandomSampleUserCount3000,表示可連線至 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({"+12223334444", "+12223334444"}));
這個程式碼使用 RBM 範例代理程式

大量能力檢查回應

執行大量能力檢查後,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 檔案路徑,用於執行功能檢查
  • 開發機器上代理程式服務帳戶金鑰的路徑

此外,您需要在開發機器上安裝下列軟體:

設定

  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 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
  3. 指令碼執行完畢後,請開啟輸出 CSV 檔案來查看結果。