アプリケーションの作成

このコード・スニペットでは、Applicationsを作成する方法を説明します。

以下の置換可能な値が、便利な方法でサンプルコードに設定されていることを確認する必要があります:

キー説明
VONAGE_API_KEY

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

VONAGE_API_SECRET

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

コードを書く

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": {},
    "verify": {
      "webhooks": {

全文を見る

コードを実行する

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

./create-application.sh

前提条件

npm install @vonage/server-sdk

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

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

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

全文を見る

コードを書く

create-application.js に以下を追加する:

vonage.applications.createApplication({
  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',
        },
      },
    },
  },
})
  .then((app) => console.log(app))
  .catch((error) => console.error(error));

全文を見る

コードを実行する

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

node create-application.js

前提条件

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

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

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

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

全文を見る

コードを書く

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

val application = client.application.create {
    name(APPLICATION_NAME)
    messages {
        inbound {
            address("https://example.com/webhooks/inbound")
            method(HttpMethod.POST)
        }
        status {
            address("https://example.com/webhooks/status")
            method(HttpMethod.POST)
        }
    }
    voice {
        answer {
            address("https://example.com/webhooks/answer")
            method(HttpMethod.GET)
        }
        fallbackAnswer {
            address("https://fallback.example.com/webhooks/answer")
            method(HttpMethod.GET)
        }
        event {
            address("https://example.com/webhooks/event")
            method(HttpMethod.POST)
        }
    }
    rtc {
        event {
            address("https://example.com/webhooks/event")
            method(HttpMethod.POST)
        }
    }
    verify {
        status {
            address("https://example.com/webhooks/verify")
            method(HttpMethod.POST)
        }
    }
    vbc()
}

全文を見る

コードを実行する

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

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

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

gradle run -Pmain=com.vonage.quickstart.kt.application.CreateApplication

前提条件

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

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

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

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

全文を見る

コードを書く

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

Application application = client.getApplicationClient().createApplication(
    Application.builder()
        .name(APPLICATION_NAME)
        .addCapability(Messages.builder()
                .inbound(Webhook.builder()
                        .address("https://example.com/webhooks/inbound")
                        .method(HttpMethod.POST)
                        .build()
                )
                .status(Webhook.builder()
                        .address("https://example.com/webhooks/status")
                        .method(HttpMethod.POST)
                        .build()
                )
                .build()
        )
        .build()
);

System.out.println("Application Created:");
System.out.println(application.toJson());

全文を見る

コードを実行する

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

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

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

gradle run -Pmain=com.vonage.quickstart.application.CreateApplication

前提条件

Install-Package Vonage

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

using Vonage;
using Vonage.Applications;
using Vonage.Applications.Capabilities;
using Vonage.Request;

全文を見る

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

var credentials = Credentials.FromApiKeyAndSecret(VONAGE_API_KEY, VONAGE_API_SECRET);
var client = new VonageClient(credentials);

全文を見る

コードを書く

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

var request = new CreateApplicationRequest
{
    Name = "Code Snippets V2 Application",
    Capabilities = new ApplicationCapabilities
    {
        Messages = Vonage.Applications.Capabilities.Messages.Build()
            .WithInboundUrl("https://example.com/webhooks/inbound")
            .WithStatusUrl("https://example.com/webhooks/status"),
        Voice = Vonage.Applications.Capabilities.Voice.Build()
            .WithAnswerUrl("https://example.com/webhooks/answer", WebhookHttpMethod.Get)
            .WithEventUrl("https://example.com/webhooks/event", WebhookHttpMethod.Post)
            .WithFallbackAnswerUrl("https://fallback.example.com/webhooks/answer", WebhookHttpMethod.Get),
        Rtc = Rtc.Build().WithEventUrl("https://example.com/webhooks/event", WebhookHttpMethod.Post)
    }
};
var response = await client.ApplicationClient.CreateApplicationAsync(request);

全文を見る

前提条件

composer require vonage/client

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

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

全文を見る

コードを書く

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;
}

全文を見る

コードを実行する

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

php create-application.php

前提条件

pip install vonage python-dotenv

コードを書く

create-application.py に以下を追加する:

from vonage import Auth, Vonage
from vonage_application import (ApplicationConfig, ApplicationData,
                                ApplicationUrl, Capabilities, Messages,
                                MessagesWebhooks, Region, Verify,
                                VerifyWebhooks, Voice, VoiceUrl, VoiceWebhooks)

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

# Voice application options
voice = Voice(
    webhooks=VoiceWebhooks(
        answer_url=VoiceUrl(
            address='https://example.com/answer',
            http_method='POST',
            connect_timeout=500,
            socket_timeout=3000,
        ),
        fallback_answer_url=VoiceUrl(
            address='https://example.com/fallback',
            http_method='POST',
            connect_timeout=500,
            socket_timeout=3000,
        ),
        event_url=VoiceUrl(
            address='https://example.com/event',
            http_method='POST',
            connect_timeout=500,
            socket_timeout=3000,
        ),
    ),
    signed_callbacks=True,
    conversations_ttl=8000,
    leg_persistence_time=14,
    region=Region.NA_EAST,
)

# Messages application options
messages = Messages(
    version='v1',
    webhooks=MessagesWebhooks(
        inbound_url=ApplicationUrl(
            address='https://example.com/inbound', http_method='POST'
        ),
        status_url=ApplicationUrl(
            address='https://example.com/status', http_method='POST'
        ),
    ),
    authenticate_inbound_media=True,
)

# Verify application options
verify = Verify(
    webhooks=VerifyWebhooks(
        status_url=ApplicationUrl(address='https://example.com/status', http_method='GET')
    ),
)

# Set the application capabilities
capabilities = Capabilities(voice=voice, messages=messages, verify=verify)

# Set the application configuration that will be applied
params = ApplicationConfig(
    name='My Custom Application',
    capabilities=capabilities,
)

# Call the API
response: ApplicationData = client.application.create_application(params)

print(response)

全文を見る

コードを実行する

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

python application/create-application.py

前提条件

gem install vonage

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

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

全文を見る

コードを書く

create-application.rb に以下を追加する:

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'
        }
      }
    }
  }
)

全文を見る

コードを実行する

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

ruby create-application.rb