기능 확인

사용자 기기에서 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 파일을 입력 형식으로 사용합니다.

일괄 기능 확인에는 최대 600개의 분당 쿼리 (QPM)가 포함됩니다.

일괄 기능 확인은 에이전트가 현재 출시된 이동통신사에서 도달할 수 있는 전화번호 목록과 모든 이동통신사에서 도달할 수 있는 총 사용자 수의 추정치를 반환합니다. 일괄 기능 확인 응답을 참고하세요.

도달할 수 있는 총 사용자 수 추정

일괄 확인 응답에는 에이전트의 출시된 이동통신사를 통해 즉시 연락할 수 있는 전화번호 목록(reachableUsers)이 포함되지만 응답에는 모든 이동통신사에서 연결 가능한 총 사용자 수를 추정하는 데 도움이 되는 두 개의 값도 포함됩니다.

에이전트가 500개가 넘는 전화번호에 대한 일괄 기능 확인을 실행하면 RBM은 이러한 번호의 최대 75% 를 무작위로 샘플링하여 모든 이동통신사를 확인합니다(totalRandomSampleUserCount에 보고됨). 또한 RBM은 이동통신사 출시 상태 (reachableRandomSampleUserCount)와 관계없이 무작위 샘플에서 RBM 연결 가능 숫자의 수를 반환합니다. reachableRandomSampleUserCounttotalRandomSampleUserCount로 나누면 이동통신사에서 모든 이동통신사가 실행될 경우 에이전트가 도달할 수 있는 번호의 비율을 추정할 수 있습니다.

예를 들어 일괄 기능 확인에 전화번호 5,000개를 지정하고 RBM이 지정된 숫자의 최대 75% 를 무작위로 샘플링하는 경우 totalRandomSampleUserCount3750일 수 있습니다. 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에 도달할 수 있는 무작위 샘플의 숫자 수입니다.

도구: 일괄 기능 확인 스크립트

버그 기능 확인 스크립트 (다운로드하려면 로그인) 는 CSV 파일을 입력 및 출력 형식으로 사용하여 일괄 기능 검사를 실행합니다. 스크립트는 MSISDN의 CSV 파일을 파싱하고 RBM SDK를 사용하여 나열된 모든 기기의 기능을 확인합니다.

500 스레드의 스크립트를 실행하는 2개의 CPU 및 4GB RAM으로 구성된 가상 머신은 약 1, 000 QPS에 도달할 수 있지만 전체 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 파일을 열어 결과를 확인합니다.