Événements sur mesure

Les événements personnalisés vous permettent d'ajouter des métadonnées personnalisées aux conversations en enregistrant des données avec vos événements textuels ou audio. Vous pouvez ajouter des événements en utilisant l'API REST ou l'un des SDK du client.

Créer un événement personnalisé

Chaque événement personnalisé consiste en un type et un data. Les type est soumis aux restrictions suivantes :

  • Ne doit pas dépasser 100 caractères
  • Doit contenir uniquement des caractères alphanumériques, - et _ personnages

En outre, l'événement data ne doit pas dépasser 4096 octets.

Once you've installed the JavaScript Client SDK and have a conversation object, you can call sendCustomEvent to add a custom event to the conversation.

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

Écouter les événements personnalisés

Outre l'ajout d'événements personnalisés à la conversation, vous pouvez écouter les événements personnalisés à l'aide du Client SDK. Enregistrez un gestionnaire d'événement qui écoute le nom de votre événement personnalisé :

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

Exemple complet

Here's an example application that registers a listener for my_custom_event, then emits that event:

Make sure to replace YOUR_JWT and YOUR_CONVERSATION_ID with the relevant values.

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

Troubleshooting

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