ユーザーのデバイスが RCS 対応で RBM エージェントと通信できるかどうかを確認するには、デバイスの機能をリクエストします。デバイスでサポートされている機能(ある場合)を特定することで、エージェントはデバイスの機能に合わせて会話をカスタマイズし、ユーザーが完了するのが困難または不可能な操作を提示することを回避できます。
ユーザーのデバイスが RCS メッセージを受信できない場合は、SMS などの他のサービスを介してユーザーと通信できます。
機能チェックを送信する
次のコードは、機能チェックを送信してレスポンスを待ちます。形式と値のオプションについては、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 ファイルを使用するには、Bulk Capability Check Script を使用します。
一括機能チェックでは、1 分あたり最大 600 個のクエリ(QPM)を使用できます。
一括機能チェックでは、エージェントが現在提供している携帯通信会社でエージェントがリーチできる電話番号のリストと、すべての携帯通信会社で到達可能なユーザーの総数が返されます。一括機能チェックのレスポンスをご覧ください。
リーチ可能な合計ユーザー数を見積もる
一括確認レスポンスには、エージェントが起動している携帯通信会社(reachableUsers
)ですぐに到達可能な電話番号のリストが含まれますが、レスポンスにはすべての携帯通信会社で到達可能なユーザーの合計数を推定する場合に役立つ 2 つの値も含まれます。
エージェントが 500 を超える電話番号の一括機能チェックを実行すると、RBM はすべての携帯通信会社を確認するために、これらの番号の約 75% をランダムにサンプリングし(totalRandomSampleUserCount
で報告されます)、RBM はまた、携帯通信会社の起動ステータス(reachableRandomSampleUserCount
)に関係なく、ランダムなサンプルから RBM で到達可能な番号の数を返します。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 \ -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このコードは、RBM サンプル エージェントを使用します。({"+12223334444", "+12223334444"}));
一括機能チェックのレスポンス
機能の一括チェックを実行すると、RBM は JSON 形式のレスポンスを返します。
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
項目 | 説明 |
---|---|
reachableUsers
|
エージェントが現在提供している携帯通信会社で到達可能なユーザーのリスト。 |
totalRandomSampleUserCount
|
指定された数値のランダムなサンプルの数。通常は指定された数の約 75% です。 |
reachableRandomSampleUserCount
|
エージェントが現在提供している携帯通信会社に関係なく、すべての携帯通信会社から RBM で到達可能なランダムなサンプルの数値。 |
ツール: 一括機能チェック スクリプト
Buck Capability Check スクリプト(ログインしてダウンロード)は、入力および出力形式として CSV ファイルを使用して一括能力チェックを実行します。このスクリプトは、MSISDN の CSV ファイルを解析し、RBM SDK を使用して、リストされた各デバイスの機能をチェックします。
500 スレッドのスクリプトを実行する 2 つの CPU と 4 GB の RAM の仮想マシンは約 1,000 QPS に到達できますが、全体的な QPS は、使用するマシン、デバイスの国、エージェントのリージョン構成、使用する API エンドポイントによって異なります。
前提条件
ツールを使用して一括で機能チェックを実行する前に、以下を取得してください。
- 機能チェックを実行する MSISDN を含む CSV ファイルのパス
- 開発マシン上のエージェントのサービス アカウント キーのパス
また、開発マシンに次のソフトウェアがインストールされている必要があります。
- Apache Maven 3.3.9 以降
- Java 8
設定
- 開発マシンに、 一括能力確認スクリプト(ログインしてダウンロード)。
- スクリプトのルート ディレクトリに移動します。
- サービス アカウント キーの名前を「rbm-agent-service-account-credentials.json」に変更し、そのサービス アカウント キーを「src/main/resources」ディレクトリに移動します。
一括チェックを実行する
- ターミナルで、スクリプトのルート ディレクトリに移動します。
次のコマンドを実行します。
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
スクリプトが完了したら、出力された CSV ファイルを開いて結果を表示します。