功能檢查

如要確認使用者的裝置是否啟用 RCS,以及能否與 RBM 代理程式通訊,您可以要求裝置的功能。識別裝置支援的功能 (如果有的話) 可讓代理程式根據裝置的功能量身打造對話,避免顯示使用者難以完成或不可能完成的互動。

如果使用者的裝置完全無法接收 RCS 訊息,您就可以透過其他服務 (例如簡訊) 與使用者通訊。

傳送功能檢查

下列程式碼會傳送功能檢查並等待回應。如要瞭解格式設定和值選項,請參閱 getCapabilities

cURL

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_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('../libs/rbm_api_helper');

// 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.samples.lib.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」啟動給服務專員,就可以將電信業者的 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 \
-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('../libs/rbm_api_helper');

// 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.samples.lib.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 功能檢查指令碼 (登入即可下載) 以 CSV 檔案做為輸入和輸出格式執行大量功能檢查。這個指令碼會剖析 MSISDN 的 CSV 檔案,並使用 RBM SDK 檢查清單上每部裝置的功能。

執行指令碼的虛擬機器包括 2 個 CPU 和 4 GB 的 RAM (搭配 500 個執行緒),但整體 QPS 則取決於使用的機器、裝置的國家/地區、代理程式的區域設定,以及使用的 API 端點。

必要條件

使用工具執行大量功能檢查之前,請先完成下列事項:

  • 使用 MSISDN 執行功能檢查的 CSV 檔案路徑
  • 開發機器中代理程式服務帳戶金鑰的路徑

此外,您的開發機器必須安裝下列軟體:

設定

  1. 在開發機器上,下載並擷取 大量功能檢查指令碼 (登入即可下載)。
  2. 前往指令碼的根目錄。
  3. 將服務帳戶金鑰重新命名為「rbm-agent-service-account-credentials.json」,並將服務帳戶金鑰移至「src/main/resources」目錄。

執行大量檢查

  1. 在終端機中,前往指令碼的根目錄。
  2. 執行下列指令:

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"
    

    將變數換成您指定的值。

    取代 範例
    INPUT_FILE 輸入 CSV 檔案的路徑。 input.csv
    OUTPUT_FILE 輸出 CSV 檔案的路徑。 output.csv
    NUM_OF_THREADS 用於專屬功能檢查的執行緒數量。 500
    START_INDEX 選用設定。CSV 檔案中要開始檢查的值。 5
    END_INDEX 選用設定。之後要結束檢查的 CSV 檔案值。 500
  3. 指令碼執行完畢後,請開啟輸出 CSV 檔案查看結果。