Crie suas Applications, usuários e tokens

Para usar o Client SDK, há três coisas que você precisa configurar antes de começar:

  • Aplicativo Vonage - uma Application que contém a configuração do aplicativo que você está desenvolvendo.
  • Usuário - Um usuário é um objeto que identifica um usuário único da Vonage no contexto de uma Application da Vonage e pode ser considerado um ponto final de comunicação. A Vonage permite que essas instâncias de usuário se comuniquem entre si.
    • Normalmente, um usuário tem uma correspondência de 1 para 1 com um usuário no banco de dados de usuários do seu aplicativo.
    • Para que uma pessoa possa se comunicar por meio de uma Conversação, é necessário que um objeto Usuário seja criado primeiro. Quando o objeto Usuário é criado, é atribuído a ele um ID de usuário exclusivo.
  • JSON Web Tokens, JWTs - O Vonage Client SDK utiliza JWTs para autenticação. Para que um usuário possa fazer login e utilizar as funcionalidades do Client SDK, é necessário fornecer um JWT por usuário. Os JWTs contêm todas as informações de que a plataforma da Vonage precisa para autenticar as solicitações, bem como informações como os Applications, usuários e permissões associados.

Todos esses podem ser criado pelo seu backend. Se você quiser começar e experimentar o uso do SDK imediatamente, também pode implantar um aplicativo de back-end para uso com o Client SDK usando o Modelo de servidor de exemplo do Client SDK. Caso contrário, este tutorial vai mostrar como fazer isso, usando o CLI da Vonage.

Pré-requisitos

Certifique-se de ter o seguinte:

Criar uma aplicação da Vonage

Agora você precisa criar um aplicativo Vonage. Neste exemplo, você criará um aplicativo capaz de lidar com o caso de uso de In-App Voice.

  1. Primeiro, crie o diretório do seu projeto, caso ainda não tenha feito isso.
  2. Vá para o diretório do projeto que você acabou de criar.
  3. Use os comandos a seguir para criar e configurar um aplicativo Vonage com recursos de voz e WebRTC. Substitua as URLs dos webhooks pelas suas. Se a sua plataforma restringir o tráfego de entrada que pode receber por meio de intervalos de endereços IP, você precisará adicionar o Endereços IP da Vonage à sua lista de permissões. Os endereços IP podem ser obtidos programaticamente enviando uma solicitação GET para https://api.nexmo.com/ips-v4.
vonage apps create 'Your application'

✅ Creating Application
Saving private key ... Done!
Application created

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
  None Enabled

Adicionar recursos de voz:

vonage apps capabilities update 00000000-0000-0000-0000-000000000000 voice `
  --voice-answer-url='https://example.com/webhooks/voice/answer' `
  --voice-event-url='https://example.com/webhooks/voice/event' `
  --voice-fallback-url='https://example.com/webhooks/voice/fallback'
  
✅ Fetching Application
✅ Adding voice capability to application 00000000-0000-0000-0000-000000000000

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
 VOICE:
    Uses Signed callbacks: On
    Conversation TTL: 41 hours
    Leg Persistence Time: 6 days
    Event URL: [POST] https://example.com/webhooks/voice/event
    Answer URL: [POST] https://example.com/webhooks/voice/answer
    Fallback URL: [POST] https://example.com/webhooks/voice/fallback

Adicionar recursos de RTC

vonage apps capabilities update 00000000-0000-0000-0000-000000000000 messages `
  --messages-inbound-url='https://example.com/messages/inboud' `
  --messages-status-url='https://example.com/messages/status' `
  --messages-version='v1' `
  --no-messages-authenticate-media
  
✅ Fetching Application
✅ Adding messages capability to application 00000000-0000-0000-0000-000000000000

Name: Your application
Application ID: 00000000-0000-0000-0000-000000000000
Improve AI: Off
Private/Public Key: Set

Capabilities:
  MESSAGES:
    Authenticate Inbound Media: Off
    Webhook Version: v1
    Status URL: [POST] https://example.com/messages/status
    Inbound URL: [POST] https://example.com/messages/inboud

O aplicativo é então criado. Um arquivo de chave privada private.key também é criado.

A criação de uma aplicação e os recursos da aplicação são abordados em detalhes no guia de inscrição.

Criar um usuário

Crie um usuário que fará login no Vonage Client e utilizará as funcionalidades do Vonage Client SDK: conversas, chamadas e assim por diante.

Execute o seguinte comando no seu terminal para criar uma usuária chamada Alice:

vonage users create `
  --name='Alice'
  
✅ Creating User

User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set

Channels:
  None Set

O ID do usuário é utilizado pelo SDK para realizar tarefas, como fazer login, iniciar uma chamada e outras.

Gerar um JWT de usuário

JWTs são usados para autenticar um usuário no Client SDK.

Para gerar um JWT para a Alice, execute o seguinte comando (substituindo pelos seus dados):

# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}'

# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ

O comando acima define, por padrão, o prazo de validade do JWT em 24 horas. Você pode alterar o prazo de validade para um período mais curto usando o --exp bandeira.

NOTA: Em aplicativos em produção, espera-se que seu backend exponha um endpoint que gere um JWT de acordo com a solicitação do cliente.

Mais informações