Cree su aplicación, usuarios y tokens

Para utilizar el Client SDK, hay tres cosas que debe configurar antes de empezar:

  • Aplicación de Vonage - una Aplicación que contiene la configuración de la aplicación que está creando.
  • Usuarios - Usuarios asociados con la aplicación de Vonage. Se espera que los usuarios tengan un mapeo uno a uno con tu propio sistema de autenticación.
  • Tokens Web JSON, JWTs - Client SDK utiliza JWTs para la autenticación. Para que un usuario pueda iniciar sesión y usar la funcionalidad del SDK, debes proporcionar un JWT por usuario. Los JWT contienen toda la información que la plataforma de Vonage necesita para autenticar solicitudes, así como información como las Applications, Users y permisos asociados.

Todos ellos pueden ser creado por su backend. Si desea iniciarse y experimentar el uso del SDK sin ninguna implementación de su backend, este tutorial le mostrará cómo hacerlo, utilizando la aplicación CLI de Vonage.

Requisitos previos

Asegúrate de tener lo siguiente:

Echa un vistazo Primeros pasos con la CLI de Vonage para obtener más información sobre cómo instalar y configurar la CLI.

Crear una aplicación de Vonage

Ahora debes crear una aplicación de Vonage. En este ejemplo, crearás una aplicación capaz de manejar el caso de uso de in-app caso de uso de voz.

  1. En primer lugar, cree el directorio de su proyecto si aún no lo ha hecho.

  2. Cambia al directorio del proyecto que has creado.

  3. Utiliza el siguiente comando para crear una aplicación de Vonage con funciones de voz y WebRTC. Reemplaza las URL de webhook por las tuyas. Si tu plataforma restringe el tráfico entrante que puede recibir mediante rangos de direcciones IP, deberás deberás agregar el Direcciones IP de Vonage a su lista lista. Las direcciones IP pueden obtenerse mediante programación enviando una petición GET a 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
  1. Una vez que tenga la aplicación, tendrá que añadir el archivo voice y rtc capacidades:
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
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

A continuación, la aplicación se crea y dispone de las capacidades necesarias. La creación de una aplicación y las capacidades de la aplicación se tratan en detalle en la sección documentación.

Crear un usuario

Crea un usuario que iniciará sesión en Vonage Client y participará en la funcionalidad del SDK: Conversaciones, llamadas, etc.

Ejecute el siguiente comando en su terminal para crear un usuario:

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

El ID de usuario se utiliza para realizar tareas del SDK, como iniciar sesión, iniciar una llamada, etc.

Generar un JWT de usuario

JWTs se utilizan para autenticar a un usuario en el Client SDK.

Para generar un JWT para Alice ejecute el siguiente comando:

# 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

El comando anterior establece la caducidad del JWT a un día a partir de ahora, que es la cantidad máxima de tiempo. Puede cambiar la expiración a una cantidad de tiempo más corta, o regenerar un JWT para el usuario después de que el JWT actual haya expirado.

NOTA: En aplicaciones de producción, se espera que su backend exponga un endpoint que genere JWT por su solicitud del cliente.

Para más información