Intégrer Yammer à SharePoint : Yammer Embed et API REST

Yammer offre deux modes pour son intégration aux sites et applications tierces : Yammer Embed ou une API REST. Voici un descriptif des possibilités offertes par chacun.

Yammer embed

Mode simplifié d’ajout de Yammer à un contenu HTML :

  • Un javascript Yammer à référencer
  • Un bloc HTML comme conteneur
  • Une fonction d’appel avec options


<div id="embedded-feed" style="height:800px;width:400px;"></div>

<script type="text/javascript" src="https://assets.yammer.com/assets/platform_embed.js"></script>
<script type="text/javascript"> yam.connect.embedFeed({
container: "#embedded-feed",
network: "mcnext.com",
feedType: "group",
feedId: "2211345"});
</script>

Note : il est possible d’obtenir cela très facilement en l’exportant directement à partir d’un groupe Yammer ou en utilisant l’utilitaire de configuration fourni par Yammer.

Fonctionnalités offertes

Les fonctionnalités offertes sont exactement les mêmes qu’à l’intérieur d’un flux Yammer :

  • Lecture de messages
  • Ecriture de messages avec pièces jointes
  • Like
  • Suivi
  • Partage
  • Réponse
  • Ajout de sujets
  • Se l’envoyer par email

Le rendu est fait dans une iframe dont la hauteur et la largeur sont fixes.

Les options disponibles

  • Réseau auquel se connecter
    Par défaut le réseau actif de l’utilisateur
  • Forcer la connexion au réseau principal de l’utilisateur, même s’il vient de visiter un réseau externe
  • ID du groupe Yammer utilisé par défaut lors de la saisie d’un nouvel élément
  • Texte à afficher dans la zone de saisie avant que l’utilisateur ait commencé à écrire son message
    Post-IntegrerYammer-TexteParDefaut
  • Type de flux :
    • MyFeed = flux de l’utilisateur
    • Group = choix d’un groupe à afficher par ID
    • User = choix d’un utilisateur à afficher par ID
    • Topic = choix d’un sujet à afficher par ID
    • Open Graph = commentaires sur l’élément courant (par exemple une page d’article ou un document). Plusieurs paramètres complémentaires sont disponibles pour permettre de choisir l’élément commenté, les métadonnées associées au poste…
  • Si le composant utilise le SSO

Modification de l’apparence

Le composant sera affiché dans une iframe et peut être sujet à modifications dans le futur : il ne faut pas chercher à modifier son apparence.

Il est néanmoins possible d’indiquer :

  • Si le header doit être affiché (nom du réseau)
    Post-IntegrerYammer-Header
  • Si le footer doit être affiché (option de déconnexion)
    Post-IntegrerYammer-Footer
  • Si le nom du réseau doit être caché dans le header : si le header est affiché, alors il indiquera un message neutre comme « Conversations Yammer » plutôt que d’indiquer le nom du réseau

API REST

Une api REST permet d’intégrer Yammer comme souhaité au sein de n’importe quelle application. L’apparence est alors complètement personnalisable puisque tout est à la charge du développeur.

Une documentation très complète et claire est fournie sur le site de développement Yammer.

Connexion

Il faut :

  1. Enregistrer l’application dans Yammer
  2. S’authentifier en utilisant le bouton Yammer ou en OAuth.

Une ID d’application est nécessaire pour la connexion. Tous les utilisateurs devront accepter l’application.

Limites d’appels

Le nombre de requêtes par utilisateur et par application est limité. Une erreur sera retournée lorsque l’utilisateur dépassera cette limite. La limite est différente selon le type d’élément demandé :

  • Messages = 10 requêtes en 30 secondes
  • Notifications = 10 requêtes en 30 secondes
  • Tous les autres = 10 requêtes en 10 secondes

Possibilités

Voici les différentes possibilités offertes par l’API REST :

Messages

Type de requête Description Commentaires
GET
  Derniers messages Il est possible de récupérer tout le thread ou uniquement le premier message de chacun.

·        Tous

·        Flux de l’utilisateur

·        Top

·        Suivis

·        Envoyés

·        Messags privés

·        Reçus

  Messages d’un thread
  Messages liés à un sujet
POST
  Ecrire un nouveau message ·        Corps du message

·        ID du groupe dans lequel poster

·        ID du message pour la réponse

·        Utilisateur à qui envoyer le message en privé

·        S’il s’agit d’un broadcast

·        Sujets

·        Pièces jointes

·        Objet opengraph associé

  Envoyer une copie d’un message par email à l’utilisateur courant
  Liker un message
DELETE
  Supprimer un message Par ID
  Unliker un message

Corps d’un message

  • Parsed : les URL sont telles quelles, les mentions d’utilisateurs sont mises sous la forme user:id
  • Plain : les URL sont telles quelles, les mentions utilisateurs sont sous la forme « Nom complet »
  • Rich : HTML à afficher, avec les balises <a></a> pour les URL

Propriétés d’un message

  • ID
  • ID de l’utilisateur ayant posté
  • Date de création
  • ID du réseau
  • Type de message
  • Type de sender
  • URL
  • ID du groupe
  • Body
  • ID de thread
  • Type de client (web, app…)
  • ID des utilisateurs notifiés
  • Message privé ou publique
  • Pièces jointes
    • ID
    • Type
    • Nom
    • Description
    • ID du réseau
    • URL
    • URL de la miniature
    • Type d’objet
    • Nom de l’objet
    • URL de l’hôte
    • HTML à afficher
  • LikedBy : nombre + liste des utilisateurs

Utilisateurs

Type de requête Requête Commentaires
GET
  Utilisateurs du réseau Paginée, triée par nombre de messages, nombre de followers ou alphabétiquement
  Utilisateur courant
  Utilisateur par ID
  Utilisateur par email
  Utilisateurs d’un groupe Paginée, triée par nombre de messages, nombre de followers ou alphabétiquement
  Utilisateurs ayant utilisé un sujet
  Utilisateurs ayant liké un message
  Relations pour l’utilisateur courant ou par ID Supérieurs, subordonnés et collègues
POST
  Créer un utilisateur
  Inviter un utilisateur au réseau Yammer actif
  Ajouter une relation
DELETE
  Supprimer un utilisateur
PUT
  Modifier un utilisateur

Propriétés d’un utilisateur

  • Email
  • ID
  • Réseau : ID, Nom, Domaines
  • Etat
  • Activation : Date, auto activé ou non
  • Nom complet
  • URL du profil
  • Image de profil (48×48)
  • Date de naissance
  • S’il est administrateur
  • Statistiques : nombre de followers, nombre de personnes suivies
  • Poste
  • Département
  • Emplacement
  • Téléphone de travail
  • Téléphone mobile
  • Intérêts
  • Résumé
  • Expertise
  • Diplômes
  • Entreprises précédentes

Groupes

Type de requête Requête Commentaires
GET
  Groupes suggérés
POST
  Rejoindre un groupe
DELETE
  Quitter un groupe
  Supprimer une suggestion de groupe

Suivi

Type de requête Requête Commentaires
GET
  Utilisateurs suggérés pour le suivi
  Vérifier si on suit un utilisateur
  Vérifier si on suit un thread
  Vérifier si on suit un sujet
  S’abonner à un élément
DELETE
  Se désabonner d’un élément
  Supprimer une suggestion d’utilisateur à suivre

Autres

Type de requête Requête Commentaires
GET
  Notifications de l’utilisateur courant
  Recherche Faire des requêtes de recherche, comme dans le portail Yammer
  Liste des réseaux auxquels l’utilisateur a accès

Microsoft Ignite 2015 – Yammer for team Collaboration – Mercredi 6 mai

Yammer for team Collaboration
Code : BRK2190

Par Adrien,
Pôle SharePoint MCNEXT

• Niveau : 200
• Cible : IT Influencers and Implementers
• Présentateurs
○ Jay Sethna : Product Marketing Manager, Yammer
○ Lindsay Matthews : Senior Product Manager, Yammer (Microsoft)
Dans cette session, on montre comment utiliser Yammer pour le travail d’équipe, comment rendre la collaboration plus intelligente et efficace tout en mesurant son impact sur les autres.
Il y a également des présentations de nouvelles fonctionnalités.

Lire la suite

Microsoft Ignite 2015 – Microsoft Office 365 Video End-to-End Portal Setup for Admins – Mardi 5 mai

Microsoft Office 365 Video End-to-End Portal Setup for Admins
Code : ILL3101

Par Adrien,
Pôle SharePoint MCNEXT

• Niveau : 300
• Audience : IT Influencers and Implementers
• FORMAT : Lab
Join Mikael as he takes you step-by-step from not having a video portal within your Office 365 environment to establishing your ready-to-go Office 365 Video destination with channels and permissions intact. This instructor-led lab walks you through how to enable the portal so it shows up in the main Office 365 app launcher, shows you how to create new channels and properly assign both ownership to each channel and apply desired permissions, and finally how to upload and curate video content for the broadest outreach within your company. This is a very hands-on approach to learning and controlling Office 365 Video.

Lire la suite

Microsoft Ignite 2015 – Office 365 Groups – Overview & Roadmap – Mardi 5 mai

Office 365 Groups – Overview & Roadmap
Code : BRK2114

Par Adrien,
Pôle SharePoint MCNEXT

Niveau : 200
Cible : IT Decision Makers
Présentateurs : Amit Gupta, Christophe Fiessinger

Office 365 Groups helps you collaborate by easily bringing together your colleagues and the applications you need to get work done. Office 365 Groups leverages a standard definition for team membership and permissions across Microsoft Exchange, SharePoint, and later Skype for Business, Yammer and the rest of Office 365, managed through Microsoft Azure Active Directory. This session provides an overview of Office 365 Groups, demonstrates its capabilities today, and provides a roadmap for future investments.

Objectif :
How to work together in Office 365

Lire la suite

Microsoft Ignite 2015 – The Social Intranet : Integrate Yammer into Your Microsoft SharePoint Experience – Jeudi 7 mai

The Social Intranet : Integrate Yammer into Your Microsoft SharePoint Experience
Code : BRK3201

Par Stéphane,
Pôle SharePoint MCNEXT

Niveau : 300
Présentateurs : Eric Overfield et Naomi Moneypenny

Présentation des possibilités d’intégration de Yammer aux intranets pour les rendre plus sociaux.

Lire la suite

[SPC14] SPC275 // How to become a Yammer Power User in 75 minutes

Mail de Chritian : Mercredi 05/03/2014 à 17h00

Speaker
Allison Michels – Customer Engagement Programs Manager – Yammer Microsoft

Résumé
C’est une session très pratique dans le sens travaux pratiques Cette session-démo-pratique est bien venue pour montrer comment utiliser Yammer !
Malheureusement, son côté pratique est fait en live, et c’est pas évident de retranscrire.

// Intro
Ok, d’entrée l’équipe du speaker récolte les cartes de visites des attendees pour les ajouter au réseau Yammer qui servira pour la démo.

// Home network et external network
Le home network est basé sur le nom de domaine de l’email utilisé.
Les networks externes permettent de créer un network à l’extérieur de l’organisation.

// Get started with Yammer
Les éléments pour commencer sur Yammer :
Définir son profil, et paramétrer les notifications Rejoindre 3 groupes d’intérêt, pas 50, mais juste quelques uns d’intérêt Envoyer le premier post Faire un like sur un contenu Télécharger l’application mobile.
Pour plus de conseils et de ressources, http://success.yammer.com

// Home feed – bouton en haut à gauche
Les groupes sur la gauche sont sur la gauche. Ils sont classés par activité, et par intérêt.
Dans la zone centrale, on a également le feed qui permet de remonter l’activité. Il y a 3 onglets, Top-All-Following. Le plus simple est Top qui rassemble l’activité la plus pertinente, elle n’est pas classée par date chronologique. Following est l’onglet qui remonte l’activité des personnes que l’on suit, celle qui est pertinente par rapport à ce qu’on a choisit de suivre.

// Inbox
Ce sont les messages qui permettent des annonces, réponses à des messages, des mentions dans les posts.

// Groups
Les groupes peuvent être créés par tout le monde, et peuvent être publiques ou privés. Publiques est le conseillé pour ouvrir le conversationnel. Les groupes sont donc sur le panneau à gauche. Chaque groupe a son feed où l’on peut poster un message (sur le mur).
Il est important de voir les groupes comme cross-functionals et non pas hiérarchiques. Ils sont conçus autour d’un sujet.

// Profile page
La page de profil permet de voir les conversations auxquelles on participe, et le contenu qui nous est approprié. A droite de cette page, on voit la bio et le profil de l’utilisateur. Le profil utilisateur est assez complet et il est conseillé de le remplir.

// DEMO — Mentions et Hashtags
Le groupe SharePoint Conference 2014 sur le site Yammer est disponible et le speaker propose de demander au voisin qui il est et ce qu’il aime. C’est le chaos et on ne s’entend plus – pas mal 🙂 En fait on démontre l’utilisation du mention avec @ et l’utilisation du hastag # en postant dans le groupe.
Elle explique rapidement qu’un hashtag ne peut pas être supprimé, mais il peut être renommé par l’administrateur.

// Poster vers un groupe
Elle voit que quelqu’un a posté son message non pas dans le groupe mais dans le réseau directement. Elle montre comment on peut supprimer un message. Elle peut aussi partager le message du réseau, vers le groupe.

// Edition des notifications
Elle montre comment en allant dans son profil, on peut éditer la façon dont on reçoit les notifications. Il est possible de changer les paramètres fait pour chaque groupe et par réseau.

// Bonnes pratiques
Analogie avec une fête : « N’invitez pas des personnes à une fête où il n’y a rien à manger ». De la même façon, n’invitez pas des gens à un groupe où vous n’êtes pas actifs !

// Notes
Il est possible de collaborer rapidement. Ce ne sont pas des notes synchronisées avec OneNote ou quoi que ce soit mais ça vaut ce que ça vaut pour collaborer rapidement.
Une note peut être suivi, on peut s’y abonner et recevoir des notifications lorsqu’elles sont modifiées.
DEMO —> elle a créé une note dans le groupe de la démo. elle propose de la suivre, nous propose de la modifier.

// Recognize and Praise Hard work
Elle montre la fonctionnalité de praise permettant de féliciter quelqu’un via un post sur le mur pour renforcer le feedback des collaborateurs.

// Travaux pratiques
Une grosse partie de la session part en travaux pratiques

Christian

[SPC14] Developping socially connected apps with Yammer, SharePoint and OpenGraph

Mail de Fabien

Session par Chris Johnson, manager Provoke Solution

// Résumé
Session très intéressante sur l’intégration de Yammer via l’API à des pages d’un intranet, à des applications métier, à n’importe quoi !

Pour les Dev, plein d’exemples sympa a venir sur son blog, car il va y poster la session : http://www.looselytyped.net

// Yammer API
Il nous explique les cas d’usage classique : L’API peut servir a remonter les interactions utilisateurs dans des Apps. A commenter des éléments, a liker. A partager du contenu. On peut imaginer plugger une application métier a yammer.
Exemple dans Dynamics CRM. Yammer est intégré.

Les APIs:
• Rest
• Javascript
• Opengraph: ‘protocole’ social
• Embed widget : newsfeed, bouton like
• SDK Ruby python iOS Win phone

REST api : classique, requêtes https, réponses json, get, post, delete
Exemples:
https://www.yammer.com/api/v1/messages.json
/my_feed.json
/Following.json
/users.json
/users/current.json
/streams/notifications.json
/uploaded_files/in_group/58555.json
/search.json?…

Tout ce qu’il faut pour: les messages, groupes, réseaux, invitations, Suggestions, …
http://developers.yammer.com/restapi
Attention, peu de documentation, il faut se débrouiller avec tout ca 😉

démo de REST api:
Il utilise Postman, une extension chrome pour jouer avec l’API.

Authentification:
Yammer utilise Oauth 2.0:
• User authentication
• App autorisation
• App authentication

https://www.yammer.com/client_applications : cette url donne la liste des applications clientes, leur ID, secret, etc. Une application est liée a un network. Sauf si on veut la publier dans le store yammer et dans ce cas, il faut la soumettre et passer le filtre yammer (qualité, sécurité,…).

Il nous explique maintenant comment s’authentifier par du code serveur via Oauth. Tout est dans le slide.
Maintenant, même description en code client JS.
Ca redirige l’utilisateur veut une petite fenêtre de login pour autoriser l’app a accéder aux données yammer.
SDK Javascript : Un script a intégrer dans sa page : Https://assets.yammer.com/platform/yam.js

Il nous fait une démo d’authentification dans une app web en utilisant JS.
D’abord via code serveur .net puis en JS. Très simple

// OpenGraph dans Yammer

Opengraph defini un protocole du type : Person + action + thing on app name + message
Ex: Fabien aime le doc xyz dans l’intranet « bon document !:) »

Pour créer un objet opengraph: on POST vers /activity.json

Une démo en .net, on voir que tout objet opengraph a sa propre page dans yammer. On peut donc tout liker, commenter, etc… même des items d’une application métier par exemple.

L’exemple type est le flux yammer a coté des documents office web app.

Api embed :
Un script js a ajouter.
Une page cachée pour paramétrer la feed embed : https://&#8230;./widget/configure
On peut pousser un feed dans un DIV ou autre.
Super pour mettre des commentaire sur n’importe quel élément, page, etc.

Il montre maintenant comment ajouter un bouton like via l’API embed, le bouton embed permet de l’ile la page courant.
Il compare avec un autre like via JS SDK, et là, ca va plus loin, car il peut Mike via JS n’importe quel objet depuis n’importe quelle page (des likes dans une liste d’éléments, etc…)

// dernière démo
Im a codé une app office pour ajouter une conversation sur la droite d’un document.
Comme dans web app, mais dans le client lourd !
Ils ont re-codé l’interface mais ca aurait pu se faire facilement via l’API embed.

Fabien