API を介した番号検索
API で番号参照を使用するには、 番号検索 (opens in a new tab) APIを使用します。
次に、要求と応答の例を示します。
リクエスト例:
{
"to": [
"41793026727"
]
}
to
パラメータは、チェックするすべての数値のリストです。
応答例:
{
"results":[
{
"to":"41793026727",
"mccMnc":"22801",
"imsi":"228012120181810",
"originalNetwork":{
"networkPrefix":"79",
"countryPrefix":"41"
},
"ported":false,
"roaming":false,
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
パッケージによっては、一部の情報にアクセスできない場合があります。パッケージの変更については、アカウントマネージャーにお問い合わせください。
この方法と、通知 URL での番号検索結果の受信の詳細については、「 番号検索同期要求 (opens in a new tab)」を参照してください。
同期と非同期
番号番号検索は、データベース内の電話番号に関する情報を提供します。その情報を取得するには、次の 2 つの方法があります。
- 同期
- 非同期
同期 API API 呼び出しにより、アプリケーションが API 呼び出しから応答を受信する前に番号検索が行われます。つまり、アプリケーション コードで HTTP 応答の時間を処理できるため、ユーザーは NC 参照応答の待機をアプリ内の待機時間やパフォーマンスの遅延として認識しません。
同期 API 呼び出しは、API 応答が受信されたときにのみ正しく実行されるコードがアプリにある場合に便利です。
POST /number/1/query HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"to":[
"41793026727",
"41793026728",
"41793026729"
]
}
番号検索の結果は、応答で直接受信されます。
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"to":"41793026727",
"mccMnc":"22801",
"originalNetwork":{
"networkPrefix":"79",
"countryPrefix":"41"
},
"ported":false,
"roaming":false,
"status":{
"groupId":2,
"groupName":"UNDELIVERABLE",
"id":9,
"name":"UNDELIVERABLE_NOT_DELIVERED",
"description":"Message sent not delivered"
},
"error":{
"groupId":1,
"groupName":"HANDSET_ERRORS",
"id":27,
"name":"EC_ABSENT_SUBSCRIBER",
"description":"Absent Subscriber",
"permanent":false
}
}
]
}
非同期 呼び出しは、番号検索が実行されるのを待たずに API 呼び出し応答が返されます。番号番号検索が完了すると、コールバック関数が実行され、リクエストで指定したnotifyUrl
に番号検索情報が送信されます。
POST /number/1/notify HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"to":[
"41793026727",
"41793026728",
"41793026729"
],
"notifyUrl":"http://example.com/notifyUrl",
"notifyContentType":"application/json"
}
データベースのクリーニング
顧客にプロモーションメッセージを送信し、配信レポートを分析した場合、電話番号データベースに無効な番号が多数あることに気付く可能性があります。電話番号番号検索を使用して電話番号データベースをクリーンアップできます。
データベースをクリーンアップするには、データベース クリーニング パッケージ を用意し、HTTP POST 要求で番号検索を実行する必要があります。
POST /number/1/query HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
{
"to":["41793026834"]
}
この例では、わかりやすくするために、電話番号を 1 つだけ使用しました。パッケージに応じて、応答は次のようになります。
HTTP/1.1 200 OK
Content-Type: application/json
{
"results":[
{
"to":"41793026834",
"mccMnc":"22801",
"imsi":"228012123477789",
"originalNetwork":{
"networkPrefix":"79",
"countryPrefix":"41"
},
"ported":false,
"roaming":false,
"status":{
"groupId":3,
"groupName":"DELIVERED",
"id":5,
"name":"DELIVERED_TO_HANDSET",
"description":"Message delivered to handset"
},
"error":{
"groupId":0,
"groupName":"OK",
"id":0,
"name":"NO_ERROR",
"description":"No Error",
"permanent":false
}
}
]
}
番号番号検索応答で受信する情報から、電話番号が有効かどうかを検出できます。
パッケージごとに使用可能なパラメーターのリスト、および使用可能なステータスのリストについては、「 番号検索 (opens in a new tab) 」を参照してください。
たとえば、30 個の電話番号が無効で 70 個の電話番号が有効であるため、30 個の無効な電話番号をデータベースから削除することにします。これにより、SMS送信コストを最大30%節約でき、同じ予算でより多くのアクティブな購読者を招待できます。