Atualizar o aplicativo

Neste trecho de código, você verá como atualizar uma Application.

Exemplo

Você precisará garantir que os seguintes valores substituíveis sejam definidos no código de exemplo, utilizando qualquer método que lhe seja conveniente:

ChaveDescrição
VONAGE_API_KEY

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

VONAGE_API_SECRET

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

VONAGE_APPLICATION_ID

The Vonage Application ID.

NAME

The new name for the Vonage application you want to update.

Escreva o código

Adicione o seguinte ao arquivo ` update-application.sh`:

curl -X "PUT" "https://api.nexmo.com/v2/applications/$VONAGE_APPLICATION_ID" \
     -H 'Content-Type: application/json' \
     -u "$VONAGE_API_KEY:$VONAGE_API_SECRET" \
     -d $'{
  "name": "New App Name",
  "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": "POST"
        },
        "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": {
        "status_url": {

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

./update-application.sh

Pré-requisitos

npm install @vonage/server-sdk

Crie um arquivo chamado ` update-application.js ` e insira o seguinte código:

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

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` update-application.js`:

vonage.applications.updateApplication({
  id: VONAGE_APPLICATION_ID,
  name: 'New App Name',
  capabilities: {
    messages: {
      webhooks: {
        inboundUrl: {
          address: 'https://example.com/webhooks/inbound',
          httpMethod: 'POST',
        },
        statusUrl: {
          address: 'https://example.com/webhooks/status',
          httpMethod: 'POST',
        },
      },
    },
    voice: {
      webhooks: {
        answerUrl: {
          address: 'https://example.com/webhooks/answer',
          httpMethod: 'POST',
        },
        eventUrl: {
          address: 'https://example.com/webhooks/event',
          httpMethod: 'POST',
        },
      },
    },
    rtc: {
      webhooks: {
        eventUrl: {
          address: 'https://example.com/webhooks/event',
          httpMethod: 'POST',
        },
      },
    },
    vbc: {},
    verify: {
      webhooks: {
        statusUrl: {
          address: 'https://example.com/webhooks/status',
          httpMethod: 'POST',
        },
      },
    },
  },
})
  .then((resp) => console.log(resp))
  .catch((error) => console.error(error));

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

node update-application.js

Pré-requisitos

Adicione o seguinte ao arquivo ` build.gradle`:

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

Crie um arquivo chamado ` UpdateApplication ` e adicione o código a seguir ao método ` main `:

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao método ` main ` do arquivo ` UpdateApplication `:

val application = client.application.application(VONAGE_APPLICATION_ID).update {
    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)
        }
        event {
            address("https://example.com/webhooks/event")
            method(HttpMethod.POST)
        }
        rtc {
            event {
                address("https://example.com/webhooks/event")
                method(HttpMethod.POST)
            }
        }
        vbc()
    }
}

Ver código-fonte completo

Execute seu código

Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:

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

Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.kt.application ` pelo pacote que contém ` UpdateApplication`:

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

Pré-requisitos

Adicione o seguinte ao arquivo ` build.gradle`:

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

Crie um arquivo chamado ` UpdateApplication ` e adicione o código a seguir ao método ` main `:

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao método ` main ` do arquivo ` UpdateApplication `:

ApplicationClient applicationClient = client.getApplicationClient();
Application existingApplication = applicationClient.getApplication(VONAGE_APPLICATION_ID);

Capability messages = 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();

Capability voice = Voice.builder()
        .answer(Webhook.builder()
                .address("https://example.com/webhooks/answer")
                .method(HttpMethod.POST)
                .build()
        )
        .event(Webhook.builder()
                .address("https://example.com/webhooks/event")
                .method(HttpMethod.POST)
                .build()
        )
        .build();

Capability rtc = Rtc.builder()
        .event(Webhook.builder()
                .address("https://example.com/webhooks/event")
                .method(HttpMethod.POST)
                .build()
        )
        .build();

Capability vbc = Vbc.builder().build();

Application application = applicationClient.updateApplication(
        Application.builder(existingApplication)
                .name(APPLICATION_NAME)
                .addCapability(messages)
                .addCapability(voice)
                .addCapability(rtc)
                .addCapability(vbc)
                .build()
);

System.out.println("Application Updated:");
System.out.println("Old: " + existingApplication.toJson());
System.out.println("New: " + application.toJson());

Ver código-fonte completo

Execute seu código

Podemos usar o plugin “ aplicativo ” para o Gradle a fim de simplificar a execução do nosso aplicativo. Atualize seu arquivo ` build.gradle ` com o seguinte:

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

Execute o seguinte comando ` gradle ` para rodar seu aplicativo, substituindo ` com.vonage.quickstart.application ` pelo pacote que contém ` UpdateApplication`:

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

Pré-requisitos

Install-Package Vonage

Crie um arquivo chamado ` UpdateApplication.cs ` e insira o seguinte código:

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

Ver código-fonte completo

Adicione o seguinte ao arquivo ` UpdateApplication.cs`:

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` UpdateApplication.cs`:

var request = new CreateApplicationRequest
{
    Name = "New App Name",
    Capabilities = new ApplicationCapabilities
    {
        Messages = Vonage.Applications.Capabilities.Messages.Build()
            .WithInboundUrl("https://example.com/webhooks/inbound")
            .WithStatusUrl("https://example.com/webhooks/status"),
        Rtc = Rtc.Build().WithEventUrl("https://example.com/webhooks/events", WebhookHttpMethod.Post),
        Voice = Vonage.Applications.Capabilities.Voice.Build()
            .WithAnswerUrl("https://example.com/webhooks/answer", WebhookHttpMethod.Get)
            .WithEventUrl("https://example.com/webhooks/events", WebhookHttpMethod.Post),
        Vbc = Vbc.Build()
    }
};
var response = await client.ApplicationClient.UpdateApplicationAsync(VONAGE_APPLICATION_ID, request);

Ver código-fonte completo

Pré-requisitos

composer require vonage/client

Crie um arquivo chamado ` update-application.php ` e insira o seguinte código:

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` update-application.php`:

try {
    $application = $client->applications()->get(VONAGE_APPLICATION_ID);
    $application->setName('New Name2');
    $application->getVoiceConfig()->setWebhook(
        Nexmo\Application\VoiceConfig::ANSWER,
        new Nexmo\Application\Webhook('http://test.domain/webhook/voice')
    );
    $application = $client->applications()->update($application);

    echo $application->getId() . PHP_EOL;
    echo $application->getName() . PHP_EOL;
} catch (\InvalidArgumentException $e) {
    echo $e->getMessage() . PHP_EOL;
}

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

php update-application.php

Pré-requisitos

pip install vonage python-dotenv

Escreva o código

Adicione o seguinte ao arquivo ` update-application.py`:

from vonage import Auth, Vonage
from vonage_application import (ApplicationConfig, ApplicationData,
                                ApplicationUrl, Messages, MessagesWebhooks)

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

config = ApplicationConfig(
    name='My Renamed Application',
    capabilities=Messages(
        webhooks=MessagesWebhooks(
            inbound_url=ApplicationUrl(
                address='https://example.com/inbound_new_url', http_method='GET'
            ),
            status_url=ApplicationUrl(
                address='https://example.com/status_new_url', http_method='GET'
            ),
        ),
        authenticate_inbound_media=False,
    ),
)
response: ApplicationData = client.application.update_application(
    id=VONAGE_APPLICATION_ID, config=config
)

print(response)

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

python application/update-application.py

Pré-requisitos

gem install vonage

Crie um arquivo chamado ` update-application.rb ` e insira o seguinte código:

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

Ver código-fonte completo

Escreva o código

Adicione o seguinte ao arquivo ` update-application.rb`:

response = client.applications.update(
  VONAGE_APPLICATION_ID,
  id: VONAGE_APPLICATION_ID,
  name: 'Ruby Update 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'
        }
      }
    },
    'voice': {
      'webhooks': {
        'answer_url': {
          'address': 'https://example.com/webhooks/answer',
          'http_method': 'POST'
        },
        'event_url': {
          'address': 'https://example.com/webhooks/event',
          'http_method': 'POST'
        }
      }
    }
  }
)

Ver código-fonte completo

Execute seu código

Salve este arquivo no seu computador e execute-o:

ruby update-application.rb