
Partager:
Britt Barak est chef de produit chez Nexmo, pour les SDK Nexmo Conversation API et Client.
Introduction de canaux personnalisés dans les conversations
Temps de lecture : 2 minutes
Chez Vonage, nous nous engageons à construire les plateformes les plus robustes, les plus flexibles et les plus évolutives possibles afin que vous puissiez continuer à créer des expériences de conversation exceptionnelles pour vos utilisateurs. Dans cette optique, nous sommes heureux d'annoncer un nouveau frère pour les canaux vocaux et de messages In-App Messaging : Les canaux personnalisés !
Grâce aux événements personnalisés, vous pouvez créer une intégration personnalisée avec n'importe quel canal imaginable. Par exemple, d'autres plateformes de messagerie, les courrielsou paiements.
Comment cela fonctionne-t-il ?
1. Définir lesCustom Event Objet
Un événement personnalisé possède un type et un body. Le type est le nom que vous avez choisi pour le canal personnalisé, qui commence par la clé "custom:". Les body sont des paires clé-valeur qui définissent les données que vous souhaitez transmettre dans l'événement.
2. Envoi d'événements personnalisés
Vous pouvez envoyer des événements personnalisés à une conversation par l'intermédiaire de l Conversation APIConversations, ou les SDK clients.
Lorsque vous envoyez un événement par l'intermédiaire des SDK Android ou iOS, le préfixe "custom:" pour le type d'événement est automatiquement ajouté en votre nom.
Vous trouverez ci-dessous des exemples de la manière dont cela peut être réalisé en utilisant les trois SDK clients pris en charge SDK client.
Android
var sendListener: NexmoRequestListener<Void> = object: NexmoRequestListener<Void> {
override fun onError(error: NexmoApiError) {...}
override fun onSuccess(var1: Void?) {...}
}
conversation.sendCustomEvent("my_type", hashMapOf("myKey" to "myValue"), sendListener) iOS
conversation.sendCustom(withEvent: "my_type", data: ["myKey": "myValue"], completionHandler: { (error) in
if let error = error {...}
NSLog("Custom event sent.")
}) JavaScript
conversation.sendCustomEvent({ type: 'custom:my_type', body: { myKey: 'myValue' }}).then((custom_event) => { ... }); 3. Réception d'événements personnalisés
La réception d'un événement personnalisé est similaire à la réception de tout autre événement dans la mesure où vous le recevrez sur le RTC de votre application event_url.
Dans nos trois SDK clients pris en charge, vous le recevrez comme indiqué ci-dessous :
Android
var customEventListener: NexmoCustomEventListener = NexmoCustomEventListener { event ->
Log.d(TAG, "Received custom event with type " + event.customType + ": " + event.data)
}
conversation.addCustomEventListener(customEventListener) iOS
//In `NXMConversationDelegate`:
func conversation(_ conversation: NXMConversation, didReceive event: NXMCustomEvent) {
NSLog("Received custom event with type \(String(describing: event.customType)): \(String(describing: event.data))");
} JavaScript
conversation.on('custom:my_type', (from, event) => {
console.log(event.body);
}); 4. Envoi de notifications push
Si votre application Android ou iOS s'exécute en arrière-plan, vous souhaiterez peut-être informer votre utilisateur de l'arrivée d'un événement personnalisé à l'aide d'une notification push.
Pour ce faire, vous devez définir la charge utile à envoyer par notification push et par type :
PUT https://api.nexmo.com/v2/applications/:your_nexmo_application_id
{
"capabilities": {
"rtc": {
...
"push_notifications": {
"custom:my_type": {
enabled: true,
template: {
notification: {
body: "Value sent: '${event.body.my_key}' !”
},
data: {
image: "https://example.image.jpg",
myKey: myValue
}
}
}
}
}
} 5. Réception d'une notification push
Après avoir configuré les notifications push pour vos applications mobiles, vous êtes prêt à recevoir vos notifications push personnalisées. Vous pouvez accéder aux données personnalisées que vous avez définies précédemment comme suit :
Android
if (NexmoClient.isNexmoPushNotification(message!!.data)) {
NexmoPushPayload nexmoPushPayload = nexmoClient.processPushPayload(message!!.data, pushListener)
when(nexmoPushPayload.pushTemplate){
Custom ->
nexmoPushEvent.customData //got custom push data 😀
Default ->
nexmoPushEvent.eventData // got default push event data
}
} iOS
NSDictionary* pushData = [get the payload];
if ([NXMClient.shared.isNexmoPush:pushData]) {
NXMPushPayload nexmoPushPayload = [NXMClient.shared processPushPayload:pushData];
if (nexmoPushPayload.template == NXMPushTemplateCustom){
nexmoPushEvent.customData //got custom push data 😀
}
if (nexmoPushPayload.template == NXMPushTemplateDefault){
nexmoPushEvent.eventData // got default push event data
}
} Intégration terminée
Vous avez maintenant tout ce qu'il vous faut pour intégrer un canal personnalisé avec des notifications push personnalisées dans vos expériences de conversation. Nous sommes impatients de voir quels canaux vous ajouterez et comment vous les utiliserez pour enrichir la conversation de vos utilisateurs avec vous !
Quelle est la prochaine étape ?
Consultez les guides complets et les guides d'événements personnalisés pour Conversation API et pour les SDK clients.
Trouvez des exemples d'intégration de canaux personnalisés avec WeChat, SendinBlue emailsSendinBlue, ou paiements avec Stripe.
Explorer plus de conversations API et Client SDK dans notre documentation publique.
Si vous avez des questions ou des commentaires, faites-le nous savoir sur notre Communauté Slack ou sur support@nexmo.com