Eventos personalizados

Los eventos personalizados te permiten añadir metadatos personalizados a las conversaciones grabando datos junto a tus eventos de texto o audio. Puede añadir eventos mediante la API REST o cualquiera de los SDK de cliente.

Crear un evento personalizado

Cada evento personalizado consta de un único type y un data. En type tiene las siguientes restricciones:

  • No debe superar los 100 caracteres
  • Sólo debe contener caracteres alfanuméricos, - y _ caracteres

Además, el acto data no debe superar los 4096 bytes.

Una vez que haya instalado el JavaScript Client SDK y tener un conversation objetopuede llamar a sendCustomEvent para añadir un evento personalizado a la conversación.

conversation.sendCustomEvent({ type: 'my_custom_event', body: { your: 'data' }}).then((custom_event) => {
  console.log(custom_event);
});

Escucha de eventos personalizados

Además de añadir eventos personalizados a la conversación, puede escuchar eventos personalizados utilizando el Client SDK. Registre un controlador de eventos que escuche el nombre de su evento personalizado:

conversation.on('my_custom_event', (from, event) => {
  console.log(event.body);
});

Ejemplo completo

A continuación se muestra una aplicación de ejemplo que registra un receptor para my_custom_eventy, a continuación, emite ese evento:

Asegúrese de sustituir YOUR_JWT y YOUR_CONVERSATION_ID con los valores correspondientes.

<script src="./node_modules/nexmo-client/dist/nexmoClient.js"></script>
<script>
  (async function() {
    let nexmo = new NexmoClient();
    let app = await nexmo.createSession(YOUR_JWT);
    let c = await app.getConversation(YOUR_CONVERSATION_ID);

    c.on('my_custom_event', (from, event) => {
        console.log(event.body);
    });

    c.sendCustomEvent({ type: 'my_custom_event', body: { your: 'data' }}).then((custom_event) => {
        console.log(custom_event);
    });
  })();
</script>

Solución de problemas

Object is missing self (me)

If you receive an error that states Object is missing self (me), ensure that the user you're authenticating as is a member of the conversation