Expériences embarquées – Mise en pratique

Nous avons vu dans l'article précédent ce qu'était la notion d'expérience embarquée.

Intégrons cette notion dans nos applications.

Par où commencer ? Nous savons maintenant représenter une expérience intégrée via le modèle des expériences embarquées, mais comment l’ajouter dans un email ou une entrée du flux d’activité ? Ce n’est pas si compliqué. Supposons que votre application crée déjà des entrées dans le flux d’activité ou bien envoie déjà des notifications, tout ce que nous avons à faire est de les étendre.

Flux d’activités (Activity Stream)

Pour intégrer une expérience dans un flux d’activité, nous avons juste besoin de modifier légèrement l’entrée d’activité pour ajouter le modèle de données de l’expérience intégrée. Souvenez-vous que c’est simplement l’url définie dans le gadget ou l’URL HTML dont a besoin le client pour intégrer l’application.

Exemple : supposons que nous ayons une entrée d’activité assez standard comme celle que pourrait poster une application de la société ACME Airlines.

{
   generator: {
      image: {url: "http://acmeairlines.com/logo.gif"},
      id: "AcmeAirlines",
      displayName: "Acme Airlines",
      url: "http://ameairlines.com",
   },
   actor: {
      id: [Connections Profile ID],
   },
   verb: "created",
   title: "${Actor} created a ${Object} in the ${Target}.",
   content: "Please approve Frank Adam's flight request for flight abc123.",
   updated: "2012-01-01T12:00:00.000Z",
   object: {
      summary: personObj.displayName+" is requesting to fly from "+flight.Depart+" to "+flight.Arrive+" on flight "+flight.FlightId+".",
      objectType: "flight",
      id: "abc123",
      displayName: "Flight Request",
      url: "http://acmeairlines.com"
   },
   target: {
      summary: "Airlines Booking App",
      objectType: "application",
      id: "AcmeAirlines",
      displayName: "Acme Airlines Booking App",
      url: "https://acmeairlines.com"
   }
}

 

Vous pouvez remarquer que le modèle de données de l’expérience intégrée n’est pas décrit dans cette entrée d’activité, nous allons donc l’ajouter.

Pour cela, la première chose à faire est d’ajouter une propriété OpenSocial (au format JSON) à notre entrée d’activité. L’entrée devient donc celle-ci (en rouge les différences)

{
   generator: {
      image: {url: "http://acmeairlines.com/logo.gif"},
      id: "AcmeAirlines",
      displayName: "Acme Airlines",
      url: "http://ameairlines.com",
   },
   actor: {
      id: [Connections Profile ID],
   },
   verb: "created",
   title: "${Actor} created a ${Object} in the ${Target}.",
   content: "Please approve Frank Adam's flight request for flight abc123.",
   updated: "2012-01-01T12:00:00.000Z",
   object: {
      summary: personObj.displayName+" is requesting to fly from "+flight.Depart+" to "+flight.Arrive+" on flight "+flight.FlightId+".",
      objectType: "flight",
      id: "abc123",
      displayName: "Flight Request",
      url: "http://acmeairlines.com"
   },
   target: {
      summary: "Airlines Booking App",
      objectType: "application",
      id: "AcmeAirlines",
      displayName: "Acme Airlines Booking App",
      url: "https://acmeairlines.com"
   }
   openSocial : {
      embed: {
      gadget: "http://acmeairlines.com/gadget.xml",
      context: {
         id : "123abc"
      }
   }
}

 

Après avoir posté cette entrée dans le flux d’activité de IBM Connections, lorsque nous cliquerons sur l’entrée, IBM Connections interprétera et effectuera le rendu du gadget http://acmeairlines.com/gadget.xml en tant qu’application intégrée.

Expériences intégrées dans la messagerie

Les expériences embarquées dans la messagerie sont basées sur le standard de messagerie MIME. Les emails au format MIME peuvent utiliser ce que l’on appelle une représentation alternative multi-parties (multipart alternative représentation) c’est-à-dire que l’email peut contenir plusieurs représentations du même contenu.

Traditionnellement, les emails au format MIME sont constitués de 2 parties MIME, une partie au format texte et une partie HTML, comme l’exemple ci-dessous le montre :

From: notifications@acmeair.com
To: fadams@acmeair.com
Subject: Please approve this travel request

MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="XXXXboundary text"

--XXXXboundary text
Content-Type: text/plain
I need to do some customer travel, could you please approve this travel request?

http://acmeair.com/travel.html
--XXXXboundary text
Content-Type: text/html

I need to do some customer travel, could you please approve this <a href="http://acmeair.com/travel.html">travel request</a>?

Ce type de description est simpliste mais est représentatif d’une notification issue d’une application d’entreprise. Dans ce mail, il y a quelques informations, mais nous devons sortir du contexte de l’email pour se connecter sur l’application pour approuver la demande de voyage. Il est aisé de de comprendre qu’il est utile de donner à l’utilisateur la possibilité d’approuver la demande de voyage directement depuis l’email en utilisant une expérience intégrée.

Pour faire cela, nous avons juste à intégrer une troisième description à notre message MIME. Cette troisième description sera au format JSON (application/embed + JSON). Le contenu de notre troisième description contiendra le modèle de données de notre expérience intégrée.

Ainsi l’email devient:

From: notifications@acmeair.com
To: fadams@acmeair.com
Subject: Please approve this travel request
MIME-Version: 1.0
Content-Type: multipart/alternative;
        boundary="XXXXboundary text"

--XXXXboundary text
Content-Type: text/plain

I need to do some customer travel, could you please approve this travel request?

http://acmeair.com/travel.html

--XXXXboundary text
Content-Type: text/html

I need to do some customer travel, could you please approve this travel request?

--XXXXboundary text
Content-Type: application/embed+json
{
    gadget: "http://acmeairlines.com/gadget.xml",
    context: {
        id : "123abc"
    }
}

Enfantin ! Quand cet email arrive dans la boite aux lettres d’un client mail IBM, le client mail essaiera de prendre en compte la description au format application/embed+json et essaiera d’effectuer le rendu de l’expérience intégrée (en supposant que l’administrateur ait autorisé cette action pour l’utilisateur).
Si le client mail ne supporte pas les expériences intégrées, alors le client mail prendra en compte la partie MIME, la plus riche de l’email, à savoir la partie HTML la plupart du temps.
Si vous choisissez de représenter l’expérience intégrée selon la syntaxe XML, alors il suffit de changer le type de contenu en application/embed+xml.
L’envoi d’emails avec expérience embarquée n’est pas plus compliqué. Si votre application envoie déjà des emails, il vous suffit de modifier le code pour ajouter la nouvelle description MIME. Si aucune notification n’est envoyée par votre application, vous trouverez nombre d’exemples de codes vous permettant de mettre en place cette fonctionnalité. La plupart étant dépendants du langage que vous utiliserez.

 

Conclusion

À ce stade, vous devriez avoir une assez bonne idée de ce que sont les expérience intégrées et comment elles sont utilisées dans les flux d'activités et les emails. Si vous cherchez un exemple plus concret des expériences embarquées, consultez les exemples d'applications qui sont fournies avec le Social Business Toolkit SDK d’IBM.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.