ユーザーのデバイスが RCS に対応していて、RBM エージェントと通信できるかどうかを確認するには、デバイスの機能をリクエストします。デバイスがサポートしている機能(ある場合)を特定することで、エージェントはデバイスの機能に合わせて会話を調整し、ユーザーが完了するのが難しい、または不可能なインタラクションを表示しないようにすることができます。
ユーザーのデバイスが RCS メッセージをまったく受信できない場合は、SMS などの他のサービスを使用してユーザーとやり取りできます。
機能チェックを送信する
次のコードは、機能チェックを送信してレスポンスを待機します。形式と値のオプションについては、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 サンプル エージェントからの抜粋です。
機能のレスポンス
機能チェックを実行すると、指定したデバイスがサポートする機能の JSON 形式のリストが RBM プラットフォームから返されます。
{ "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 ファイルを使用します。
一括機能チェックの最大クエリ数は 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?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 に到達可能なランダム サンプルの電話番号の数。 |
ツール: 一括機能チェック スクリプト
一括機能チェック スクリプト(ログインしてダウンロード) 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
設定
- 開発マシンで、 一括機能チェック スクリプト(ログインしてダウンロード)。
- 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 ビジネス メッセージ エージェントの 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 ファイルを開いて結果を確認します。