Numbersインサイトアドバンス(同期式)

2027年2月4日をもって、VonageはVonage Number Insightsを終了いたします。継続的なサポートを確保し、よりスケーラブルで将来性のあるソリューションを提供するため、当社の強化されたソリューションへの移行をお勧めします: Vonage Identity Insights API.Vonage Identity Insight APIは、複数の電話番号関連データセットを1つの柔軟なAPIに統合し、電話番号に関するリアルタイムの情報を要求したり、番号のフォーマット、キャリアの詳細、SIMスワップ、加入者照合などのインサイトを1回の呼び出しで自由に組み合わせて取得できるようにします。

をご確認ください。 Numbersインサイト移行ガイドAPIの相違点、必要な変更点、スムーズな移行のためのベストプラクティスに関する詳細なガイダンスを提供しています。

このコードスニペットは、Number Insight Advanced APIを同期的に使用する方法を示しています。

:Vonageはこの方法を推奨していません。タイムアウトが発生する可能性があるからです。ほとんどの場合 非同期呼び出し をNumber Insight APIに追加した。

コード例を実行する前に、変数のプレースホルダーを置き換えてください:

キー説明
VONAGE_API_KEY

Your Vonage API key (see it on your dashboard).

VONAGE_API_SECRET

Your Vonage API secret (also available on your dashboard).

INSIGHT_NUMBER

The number you want to retrieve insight information for.

REAL_TIME_DATA

An optional flag to determine if you want real time data back in the response.

コードを書く

ni-advanced.sh に以下を追加する:

source "../config.sh"

curl \
  -u "${VONAGE_API_KEY}:${VONAGE_API_SECRET}" \
  "https://api.nexmo.com/ni/advanced/json?number=$INSIGHT_NUMBER"

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

sh ni-advanced.sh

前提条件

npm install @vonage/server-sdk

ni-advanced.js という名前のファイルを作成し、以下のコードを追加する:

const { Vonage } = require('@vonage/server-sdk');

const vonage = new Vonage({
  apiKey: VONAGE_API_KEY,
  apiSecret: VONAGE_API_SECRET,
});

全文を見る

コードを書く

ni-advanced.js に以下を追加する:

vonage.numberInsights.advancedLookup(INSIGHT_NUMBER)
  .then((result) => console.log(result))
  .catch((error) => console.error(error));

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

node ni-advanced.js

前提条件

build.gradle に以下を追加する:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'

AdvancedInsightSync という名前のファイルを作成し、main メソッドに以下のコードを追加する:

val client = Vonage {
    apiKey(VONAGE_API_KEY)
    apiSecret(VONAGE_API_SECRET)
}

全文を見る

コードを書く

AdvancedInsightSync ファイルのmain メソッドに以下を追加する:

val response = client.numberInsight.advanced(INSIGHT_NUMBER, INSIGHT_CALLBACK_URL)
println(response)

全文を見る

コードを実行する

Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

以下のgradle コマンドを実行し、com.vonage.quickstart.kt.numberinsightAdvancedInsightSync を含むパッケージに置き換えてアプリケーションを実行する:

gradle run -Pmain=com.vonage.quickstart.kt.numberinsight.AdvancedInsightSync

前提条件

build.gradle に以下を追加する:

implementation 'com.vonage:server-sdk:9.3.1'

AdvancedInsight という名前のファイルを作成し、main メソッドに以下のコードを追加する:

VonageClient client = VonageClient.builder()
        .apiKey(VONAGE_API_KEY)
        .apiSecret(VONAGE_API_SECRET)
        .build();

全文を見る

コードを書く

AdvancedInsight ファイルのmain メソッドに以下を追加する:

AdvancedInsightResponse response = client.getInsightClient().getAdvancedNumberInsight(INSIGHT_NUMBER);

System.out.println("BASIC INFO:");
System.out.println("International format: " + response.getInternationalFormatNumber());
System.out.println("National format: " + response.getNationalFormatNumber());
System.out.println("Country: " + response.getCountryName() + " (" +
        response.getCountryCodeIso3() + ", +" + response.getCountryPrefix() + ")"
);
System.out.println();
System.out.println("STANDARD INFO:");
System.out.println("Current carrier: " + response.getCurrentCarrier().getName());
System.out.println("Original carrier: " + response.getOriginalCarrier().getName());

System.out.println();
System.out.println("ADVANCED INFO:");
System.out.println("Validity: " + response.getValidNumber());
System.out.println("Reachability: " + response.getReachability());
System.out.println("Ported status: " + response.getPorted());

RoamingDetails roaming = response.getRoaming();
if (roaming == null) {
    System.out.println("- No Roaming Info -");
}
else {
    System.out.println("Roaming status: " + roaming.getStatus());
    if (response.getRoaming().getStatus() == RoamingStatus.ROAMING) {
        System.out.print("    Currently roaming in: " + roaming.getRoamingCountryCode());
        System.out.println(" on the network " + roaming.getRoamingNetworkName());
    }
}

全文を見る

コードを実行する

Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

以下のgradle コマンドを実行し、com.vonage.quickstart.insightAdvancedInsight を含むパッケージに置き換えてアプリケーションを実行する:

gradle run -Pmain=com.vonage.quickstart.insight.AdvancedInsight

前提条件

Install-Package Vonage

AdvancedSync.cs という名前のファイルを作成し、以下のコードを追加する:

using Vonage;
using Vonage.NumberInsights;
using Vonage.Request;

全文を見る

AdvancedSync.cs に以下を追加する:


var creds = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);

全文を見る

コードを書く

AdvancedSync.cs に以下を追加する:


var request = new AdvancedNumberInsightRequest() { Number = INSIGHT_NUMBER};

全文を見る

前提条件

composer require vonage/client

コードを書く

advanced.php に以下を追加する:

$basic  = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);

$insights = $client->insights()->advanced(INSIGHT_NUMBER);

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

php advanced.php

前提条件

pip install vonage python-dotenv

コードを書く

ni-advanced.py に以下を追加する:

from vonage import Auth, Vonage
from vonage_number_insight import (AdvancedSyncInsightRequest,
                                   AdvancedSyncInsightResponse)

client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))

insight: AdvancedSyncInsightResponse = client.number_insight.get_advanced_info_sync(
    AdvancedSyncInsightRequest(number=INSIGHT_NUMBER)
)
pprint(insight)

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

python number-insight/ni-advanced.py

前提条件

gem install vonage

ni-advanced.rb という名前のファイルを作成し、以下のコードを追加する:

client = Vonage::Client.new(
  api_key: VONAGE_API_KEY,
  api_secret: VONAGE_API_SECRET
)

全文を見る

コードを書く

ni-advanced.rb に以下を追加する:

insight = client.number_insight.advanced(
  number: INSIGHT_NUMBER
)

puts insight.inspect

全文を見る

コードを実行する

このファイルをあなたのマシンに保存し、実行する:

ruby ni-advanced.rb

APIからのレスポンスには以下のデータが含まれている:

{
    "status": 0,
    "status_message": "Success",
    "lookup_outcome": 0,
    "lookup_outcome_message": "Success",
    "request_id": "75fa272e-4743-43f1-995e-a684901222d6",
    "international_format_number": "447700900000",
    "national_format_number": "07700 900000",
    "country_code": "GB",
    "country_code_iso3": "GBR",
    "country_name": "United Kingdom",
    "country_prefix": "44",
    "request_price": "0.03000000",
    "remaining_balance": "10.000000",
    "current_carrier": {
        "network_code": "23420",
        "name": "Hutchison 3G Ltd",
        "country": "GB",
        "network_type": "mobile"
    },
    "original_carrier": {
        "network_code": "23410",
        "name": "Telefonica UK Limited",
        "country": "GB",
        "network_type": "mobile"
    },
    "valid_number": "valid",
    "reachable": "reachable",
    "ported": "ported",
    "roaming": { "status": "not_roaming" },
    "real_time_data": {
     "active_status": "active",
     "handset_status": "on"
    }
}

返される各フィールドの説明と、可能なすべての値については Numbers Insight API ドキュメント