Create an Application
In this code snippet you will see how to create an Application.
Example
You will need to ensure that the following replaceable values are set in the example code using any convenient method:
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). |
Write the code
Add the following to create-application.sh
:
curl -X "POST" "https://api.nexmo.com/v2/applications" \
-H 'Content-Type: application/json' \
-u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \
-d $'{
"name": "Code Snippets V2 Application",
"capabilities": {
"messages": {
"webhooks": {
"inbound_url": {
"address": "https://example.com/webhooks/inbound",
"http_method": "POST"
},
"status_url": {
"address": "https://example.com/webhooks/status",
"http_method": "POST"
}
}
},
"voice": {
"webhooks": {
"answer_url": {
"address": "https://example.com/webhooks/answer",
"http_method": "GET"
},
"fallback_answer_url": {
"address": "https://fallback.example.com/webhooks/answer",
"http_method": "GET"
},
"event_url": {
"address": "https://example.com/webhooks/event",
"http_method": "POST"
}
}
},
"rtc": {
"webhooks": {
"event_url": {
"address": "https://example.com/webhooks/event",
"http_method": "POST"
}
}
},
"vbc": {}
}
}'
Run your code
Save this file to your machine and run it:
./create-application.sh
Prerequisites
npm install @vonage/server-sdk
Create a file named create-application-v2.js
and add the following code:
const Vonage = require('@vonage/server-sdk')
const vonage = new Vonage({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET
}, {
debug: true
});
Write the code
Add the following to create-application-v2.js
:
vonage.applications.create({
name: APPLICATION_NAME,
capabilities: {
voice: {
webhooks: {
answer_url: {
address: "https://example.com/webhooks/answer",
http_method: "GET"
},
event_url: {
address: "https://example.com/webhooks/event",
http_method: "POST"
}
}
},
messages: {
webhooks: {
inbound_url: {
address: "https://example.com/webhooks/inbound",
http_method: "POST"
},
status_url: {
address: "https://example.com/webhooks/status",
http_method: "POST"
}
}
},
rtc: {
webhooks: {
event_url: {
address: "https://example.com/webhooks/rtcevent",
http_method: "POST"
}
}
}
}
}, (error, result) => {
if(error) {
console.error(error);
}
else {
console.log(result);
}
});
Run your code
Save this file to your machine and run it:
node create-application-v2.js
Prerequisites
Add the following to `build.gradle`:
compile 'com.vonage:client:6.2.0'
Create a class named CreateApplication
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 CreateApplication
class:
ApplicationClient applicationClient = client.getApplicationClient();
Capability messages = Messages.builder()
.addWebhook(Webhook.Type.INBOUND,
new Webhook("https://example.com/webhooks/inbound", HttpMethod.POST))
.addWebhook(Webhook.Type.STATUS,
new Webhook("https://example.com/webhooks/status", HttpMethod.POST))
.build();
Application application = applicationClient.createApplication(
Application.builder()
.name(APPLICATION_NAME)
.addCapability(messages)
.build()
);
System.out.println("Application Created:");
System.out.println(application.toJson());
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.application
with the package containing CreateApplication
:
gradle run -Pmain=com.vonage.quickstart.application.CreateApplication
Prerequisites
Install-Package Vonage
Create a file named CreateApplication.cs
and add the following code:
using Vonage;
using Vonage.Request;
using Vonage.Applications;
using Vonage.Applications.Capabilities;
using Webhook = Vonage.Common.Webhook;
Add the following to CreateApplication.cs
:
var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);
Write the code
Add the following to CreateApplication.cs
:
var messagesWebhooks = new Dictionary<Webhook.Type, Webhook>();
messagesWebhooks.Add(
Webhook.Type.inbound_url,
new Webhook {
Address = "https://example.com/webhooks/inbound",
Method = "POST"
});
messagesWebhooks.Add(
Webhook.Type.status_url,
new Webhook {
Address = "https://example.com/webhooks/status",
Method = "POST"
});
var messagesCapability = new Messages(messagesWebhooks);
var request = new CreateApplicationRequest {
Name = APPLICATION_NAME,
Capabilities = new ApplicationCapabilities{ Messages = messagesCapability }
};
var response = client.ApplicationClient.CreateApplicaiton(request);
Prerequisites
composer require vonage/client
Create a file named create-application.php
and add the following code:
$basic = new \Vonage\Client\Credentials\Basic(VONAGE_API_KEY, VONAGE_API_SECRET);
$client = new \Vonage\Client(new \Vonage\Client\Credentials\Container($basic));
Write the code
Add the following to create-application.php
:
try {
$application = new Nexmo\Application\Application();
$application->fromArray([
'name' => 'Should Work2',
'capabilities' => [
'voice' => [
'webhooks' => [
'answer_url' => [
'address' => "https://example.com/webhooks/answer",
'http_method' => "GET"
],
'event_url' => [
'address' => "https://example.com/webhooks/event",
'http_method' => "POST"
]
]
],
'messages' => [
'webhooks' => [
'inbound_url' => [
'address' => "https://example.com/webhooks/inbound",
'http_method' => "POST"
],
'status_url' => [
'address' => "https://example.com/webhooks/status",
'http_method' => "POST"
]
]
],
'rtc' => [
'webhooks' => [
'event_url' => [
'address' => "https://example.com/webhooks/rtcevent",
'http_method' => "POST"
]
]
]
]
]);
$application = $client->applications()->create($application);
echo $application->getId() . PHP_EOL;
echo $application->getName() . PHP_EOL;
} catch (\InvalidArgumentException $e) {
echo $e->getMessage() . PHP_EOL;
}
Run your code
Save this file to your machine and run it:
php create-application.php
Prerequisites
pip install vonage
Create a file named create-application.py
and add the following code:
client = vonage.Client(
key=VONAGE_API_KEY,
secret=VONAGE_API_SECRET
)
Write the code
Add the following to create-application.py
:
response = client.application_v2.create_application({
"name": "Code Example App",
"capabilities": {
"messages": {
"webhooks": {
"inbound_url": {
"address": "https://example.com/webhooks/inbound",
"http_method": "POST"
},
"status_url": {
"address": "https://example.com/webhooks/status",
"http_method": "POST"
}
}
}
}
})
Run your code
Save this file to your machine and run it:
python3 create-application.py
Prerequisites
gem install vonage
Create a file named create-application.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 create-application.rb
:
begin
response = client.applications.create(
name: 'Code Example App',
capabilities: {
'messages': {
'webhooks': {
'inbound_url': {
'address': 'https://example.com/webhooks/inbound',
'http_method': 'POST'
},
'status_url': {
'address': 'https://example.com/webhooks/status',
'http_method': 'POST'
}
}
}
}
)
puts "Application #{response.id} Created Successfully" if response.id
rescue StandardError => e
puts e.message
end
Run your code
Save this file to your machine and run it:
ruby create-application.rb