这份文档还在翻译中,预期年底前完成。欢迎您提供宝贵的意见及建议。
Number Insight Advanced
The Number Insight Advanced API provides all the data from the Number Insight Standard API together with the following additional information:
- If the number is likely to be valid
- If the number is ported
- If the number is reachable (not available in the US)
- If the number is roaming and, if so, the carrier and country
Use this information to determine the risk associated with a number.
Note that the Advanced API does not provide any extra information about landlines than the Number Insight Standard API. For insights about landline numbers, use the Standard API.
This code snippet shows you how to trigger an asynchronous call to the Number Insight API. This is the approach Vonage recommends. You can optionally use the Number Insight Advanced API synchronously, but be aware that synchronous use can result in timeouts.
Before attempting to run the code examples, replace the variable placeholders:
Key | Description |
---|---|
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. |
Write the code
Add the following to ni-advanced-async.sh
:
curl "https://api.nexmo.com/ni/advanced/async/json?api_key=$VONAGE_API_KEY&api_secret=$VONAGE_API_SECRET&number=$INSIGHT_NUMBER&callback=$WEBHOOK_URL"
Run your code
Save this file to your machine and run it:
sh ni-advanced-async.sh
Prerequisites
npm install @vonage/server-sdk
Create a file named ni-advanced-async-client.js
and add the following code:
const Vonage = require('@vonage/server-sdk');
const vonage = new Vonage({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET
});
Write the code
Add the following to ni-advanced-async-client.js
:
vonage.numberInsight.get({
level: 'advancedAsync',
number: INSIGHT_NUMBER,
callback: 'https://demo.ngrok.io/webhooks/insight'
}, (error, result) => {
if (error) {
console.error(error);
}
else {
console.log(result);
}
});
Run your code
Save this file to your machine and run it:
node ni-advanced-async-client.js
Prerequisites
Add the following to `build.gradle`:
compile 'com.vonage:client:5.5.0'
Create a class named AdvancedInsightAsync
and add the following code to the main
method:
VonageClient client = VonageClient.builder()
.apiKey(VONAGE_API_KEY)
.apiSecret(VONAGE_API_SECRET)
.build();
Write the code
Add the following to the main
method of the AdvancedInsightAsync
class:
InsightClient insightClient = client.getInsightClient();
AdvancedInsightRequest request = AdvancedInsightRequest.builder(INSIGHT_NUMBER)
.async(true)
.callback(ASYNC_CALLBACK_URL)
.build();
insightClient.getAdvancedNumberInsight(request);
Run your code
We can use the application
plugin for Gradle to simplify the running of our application.
Update your build.gradle
with the following:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''
Run the following gradle
command to execute your application, replacing com.vonage.quickstart.insight
with the package containing AdvancedInsightAsync
:
gradle run -Pmain=com.vonage.quickstart.insight.AdvancedInsightAsync
Prerequisites
Install-Package Vonage
Create a file named AdvancedAsync.cs
and add the following code:
using Vonage;
using Vonage.Request;
using Vonage.NumberInsights;
Add the following to AdvancedAsync.cs
:
var creds = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(creds);
Write the code
Add the following to AdvancedAsync.cs
:
var request = new AdvancedNumberInsightAsynchronousRequest() { Number = INSIGHT_NUMBER, Callback = callbackUrl };
var response = client.NumberInsightClient.GetNumberInsightAsync(request);
Prerequisites
composer require vonage/client
Create a file named advanced-async-trigger.php
and add the following code:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client($basic);
Write the code
Add the following to advanced-async-trigger.php
:
try {
$client->insights()->advancedAsync(SEARCH_NUMBER, CALLBACK_WEBHOOK);
echo "The number will be looked up soon.";
} catch (\Vonage\Client\Exception\Request $e) {
error_log("Client error: " . $e->getMessage());
exit(1);
} catch (\Vonage\Client\Exception\Server $e) {
error_log("Server error: " . $e->getMessage());
exit(1);
}
Run your code
Save this file to your machine and run it:
php advanced-async-trigger.php
Prerequisites
gem install vonage
Create a file named ni-advanced-async-client.rb
and add the following code:
client = Vonage::Client.new(
api_key: VONAGE_API_KEY,
api_secret: VONAGE_API_SECRET
)
Write the code
Add the following to ni-advanced-async-client.rb
:
insight = client.number_insight.advanced(
number: INSIGHT_NUMBER,
callback: 'https//demo.ngrok.io/webhooks/insight'
)
puts insight.inspect
Run your code
Save this file to your machine and run it:
ruby ni-advanced-async-client.rb
The API acknowledges the request by returning the following information to the client:
{
"request_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"number": "447700900000",
"remaining_balance": "10.000000",
"request_price": "0.03000000",
"status": 0
}
When the data becomes available, it is sent to the specified webhook via a POST
request. See the Number Insight Advanced Async Callback code snippet to learn how to code the webhook handler.