Utiliser des flux sociaux dans SharePoint

Découvrez les tâches de programmation courantes pour utiliser des flux sociaux et des billets de microblog dans SharePoint.

API pour utiliser des flux sociaux dans SharePoint

Dans les batteries de serveurs SharePoint locales, les flux sociaux interactifs sont conçus pour inviter les utilisateurs à partager des informations et rester en contact avec d’autres personnes et du contenu. De nombreuses fonctionnalités de flux sont affichées sur la page Flux d’actualités du site personnel de l’utilisateur. Les flux contiennent des collections de fils de discussion qui représentent des billets de microblog, des conversations, des mises à jour de statut et d’autres notifications.

SharePoint fournit les API suivantes, que vous pouvez utiliser pour manipuler les flux sociaux via un programme :

  • Modèles objet client pour le code managé

    • Modèle objet client .NET

    • Modèle objet client Silverlight

    • Modèle objet client mobile

  • Modèle objet JavaScript

  • Service REST (Representational State Transfer)

  • Modèle objet serveur

Il est vivement recommandé d'utiliser des API clientes quand vous le pouvez pour le développement SharePoint. Les API clientes comprennent les modèles objet client, le modèle objet JavaScript et le service REST. Pour plus d’informations sur les API dans SharePoint et quand les utiliser, voir Choisir l’ensemble d’API approprié dans SharePoint.

Chaque API inclut un objet gestionnaire que vous utilisez pour effectuer les tâches principales liées au flux. Le tableau 1 répertorie les objets gestionnaire et autres objets clés (ou ressources REST) inclus dans les API, ainsi que la bibliothèque de classes (ou URI de point de terminaison) où vous pouvez les trouver.

Remarque

Les modèles objet client Silverlight et mobile ne sont pas mentionnés de manière explicite dans les tableaux 1 et 2, car ils fournissent les mêmes fonctionnalités de base que le modèle objet client .NET et utilisent les mêmes signatures. Le modèle objet client Silverlight est défini dans Microsoft.SharePoint.Client.UserProfiles.Silverlight.dll et le modèle objet client mobile est défini dans Microsoft.SharePoint.Client.UserProfiles.Phone.dll.

Tableau 1. API SharePoint utilisées pour utiliser des flux sociaux par programmation

API Objets clés
Modèle objet client .NET
Voir : Guide pratique pour créer et supprimer des publications et récupérer le flux social à l’aide du modèle objet client .NET dans SharePoint
Objet Manager : SocialFeedManager
Espace de noms principal : Microsoft.SharePoint.Client.Social
Autres objets clés : SocialFeed , SocialThread , SocialPost , SocialPostCreationData , SocialFeedOptions , SocialActor
Bibliothèque de classes : Microsoft.SharePoint.Client.UserProfiles.dll
Modèle objet JavaScript
Voir How to: Create and delete posts and retrieve the social feed by using the JavaScript object model in SharePoint
Objet Manager : SocialFeedManager
Espace de noms principal : SP. Sociale
Autres objets clés : SocialFeed, SocialThread, SocialPost, SocialPostCreationData, SocialFeedOptions, SocialActor
Bibliothèque de classes : SP.UserProfiles.js
Service REST
Voir Guide pratique pour apprendre à lire et écrire dans le flux social à l’aide du service REST dans SharePoint
Ressource du gestionnaire : social.feed (SocialRestFeedManager)
Espace de noms principal (OData) : SP. Sociale
Autres ressources clés : SocialFeed, SocialRestFeed, SocialThread, SocialRestThread, SocialPost, SocialPostCreationData, SocialRestPostCreationData, SocialFeedOptions, SocialActor, SociaRestActor
Point d’accès : <siteUri>/_api/social.feed
Modèle objet serveur
Remarque : le code qui utilise le modèle objet serveur pour accéder aux données de flux et s’exécute à distance doit utiliser un objet SPServiceContextScope .
Objet Manager : SPSocialFeedManager
Espace de noms principal : Microsoft.Office.Server.Social
Autres objets clés : SPSocialFeed , SPSocialThread , SPSocialPost , SPSocialFeedOptions , SPSocialActor
Bibliothèque de classes : Microsoft.Office.Server.UserProfiles.dll

Si vous utilisez le modèle objet serveur pour accéder au contenu du flux et que votre code n’est pas en cours d’exécution dans une instance SharePoint (en d’autres termes, si votre extension n’est pas installée dans le dossier LAYOUTS sur le serveur d’applications), utilisez un objet SPServiceContextScope dans votre code. L'exemple suivant illustre une des méthodes d'incorporation de l'objet SPServiceContextScope dans votre code.


using (SPSite site = new SPSite(<siteURL>))
{
    using (new Microsoft.SharePoint.SPServiceContextScope(SPServiceContext.GetContext(site)))
    {
        // code
    }
}

Tâches de programmation courantes pour l’utilisation des flux sociaux dans SharePoint

Le tableau 2 répertorie les tâches de programmation courantes pour l'utilisation des flux sociaux, ainsi que les membres que vous utilisez pour cela. Les membres proviennent du modèle objet client .NET (CSOM), du modèle objet JavaScript (JSOM), du service REST et du modèle objet serveur (SSOM).

Tableau 2. API pour les tâches de programmation courantes pour l’utilisation des flux sociaux dans SharePoint

Tâche Membres
Créer une instance de l'objet Gestionnaire dans le contexte de l'utilisateur actuel CSOM : SocialFeedManager
JSOM : SocialFeedManager
REST : GET<siteUri>/_api/social.feed
SSOM : SPSocialFeedManager
Créer une instance d'objet Gestionnaire dans le contexte d'un utilisateur particulier CSOM : non implémenté
JSOM : non implémenté
REST : non implémenté
SSOM : SPSocialFeedManager
Obtenir l'utilisateur pour le contexte actuel CSOM : Propriétaire
JSOM : owner
REST : GET<siteUri>/_api/social.feed/my
SSOM : Propriétaire
Obtenir le flux de l'utilisateur actuel
(spécifier le type de flux)
CSOM : GetFeed
JSOM : getFeed
REST : GET<siteUri>/_api/social.feed/my/Feed (feed.md personnel), <siteUri>/_api/social.feed/my/News, <siteUri>/_api/social.feed/my/TimelineFeedou <siteUri>/_api/social.feed/my/Likes
SSOM : GetFeed
Obtenir le flux personnel d'un utilisateur particulier CSOM : GetFeedFor
JSOM : getFeedFor
REST : GET<siteUri>/_api/social.feed/actor(item='domain\\user')/Feed
SSOM : GetFeedFor
Accéder au flux de site d'un site d'équipe
(spécifiez l’URL du flux de site en tant qu’acteur (exemple : http://< siteCollection>/<teamSite>/newsfeed.aspx))
CSOM : GetFeedFor
JSOM : getFeedFor
REST : GET<siteUri>/_api/social.feed/actor(item=@v)/Feed?@v='http://<siteCollection>/<teamSite>/newsfeed.aspx'
SSOM : GetFeedFor
Publier un billet racine pour le flux de l'utilisateur actuel
(spécifier null pour la cible)
CSOM : CreatePost
JSOM : createPost
REST : POST<siteUri>/_api/social.feed/my/Feed/Post et transmettre le paramètre restCreationData dans le corps de la demande
SSOM : CreatePost
Publier un billet vers un flux de site
(spécifiez l’URL du flux de site comme cible (exemple : http://< siteCollection>/teamSite>/newsfeed.aspx))
CSOM : CreatePost
JSOM : createPost
REST : POST<siteUri>/_api/social.feed/actor(item=@av)/feed/post/?@av='<teamSiteUri>/newsfeed.aspx' et transmettre le paramètre restCreationData dans le corps de la demande (spécifier null pour le paramètre ID)
SSOM : CreatePost
Publier une réponse à un billet
(spécifier l'ID du fil de discussion cible)
CSOM : CreatePost
JSOM : createPost
REST : POST<siteUri>/_api/social.feed/Post/Reply et transmettre le paramètre restCreationData dans le corps de la demande
SSOM : CreatePost
Supprimer un billet, une réponse ou un fil de discussion du flux de l'utilisateur actuel (supprimer un billet racine supprime l'intégralité du discussion) CSOM : DeletePost
JSOM : deletePost
REST : POST<siteUri>/_api/social.feed/Post/Delete et transmettre le paramètre ID dans le corps de la demande
SSOM : DeletePost
Obtenir un fil de discussion (un billet racine et toutes ses réponses) à partir du flux d'un utilisateur CSOM : GetFullThread
JSOM : getFullThread
REST : POST<siteUri>/_api/social.feed/Post et transmettre le paramètre ID dans le corps de la demande
SSOM : GetFullThread
Faire en sorte qu'un utilisateur « aime » (ou « n'aime plus ») un billet ou une réponse CSOM : LikePost ( UnlikePost )
JSOM: likePost ( unlikePost)
REST : POST<siteUri>/_api/social.feed/Post/Like ( <siteUri>/_api/social.feed/Post/Unlike) et passez le paramètre ID dans le corps de la demande
SSOM: LikePost ( UnlikePost )
Récupérer toutes les personnes ayant « aimé » un billet CSOM : GetAllLikers
JSOM : getAllLikers
REST : POST<siteUri>/_api/social.feed/Post/Likers et transmettre le paramètre ID dans le corps de la demande
SSOM : GetAllLikers
Obtenir les billets faisant référence à un utilisateur CSOM : GetMentions
JSOM : getMentions
REST : GET<siteUri>/_api/social.feed/my/MentionFeed
SSOM : GetMentions
Obtenir le nombre de mentions Non lu de l'utilisateur actuel CSOM : GetUnreadMentionCount
JSOM : getUnreadMentionCount
REST : GET<siteUri>/_api/social.feed/my/UnreadMentionCount
SSOM : GetUnreadMentionCount
Verrouiller (ou déverrouiller) un fil de discussion dans le flux de l'utilisateur actuel CSOM : LockThread ( UnlockThread )
JSOM : lockThread ( unlockThread)
REST : POST<siteUri>/_api/social.feed/Post/Lock ( <siteUri>/_api/social.feed/Post/Unlock) et passez le paramètre ID dans le corps de la demande
SSOM : LockThread ( UnlockThread .md)

Remarque

La valeur d’espace réservé domaine\utilisateur dans l’exemple REST doit être remplacée par le nom de compte d’un utilisateur réel. Pour savoir comment transmettre un paramètre REST dans le corps d’une requête, consultez les exemples dans la référence API REST des flux sociaux.

SharePoint ne fournit pas d’API pour personnaliser directement la disposition ou le rendu des billets de microblog. SharePoint fournit uniquement les données et permet aux applications clientes inter-appareils et multiplateforme de définir des dispositions adaptées à leurs facteurs de forme et à leurs besoins. Dans le développement SharePoint, vous pouvez utiliser des remplacements JavaScript dans le rendu côté client, comme décrit dans Personnaliser un affichage de liste dans les compléments SharePoint à l’aide du rendu côté client.

Présentation des types de flux dans l’API Mon Site social

Les types de flux représentent des coupes de données de flux. Lorsque vous récupérez un flux de l'utilisateur actuel, vous pouvez spécifier un des types de flux suivants :

  • Personal contient les mises à jour et les billets générés par un utilisateur. Sur Site Mon site, ce flux est visible sur la page À propos de moi d'un utilisateur.

  • News contient les mises à jour et les billets générés par l'utilisateur actuel, ainsi que par les personnes et le contenu qu'il suit. Lorsque vous récupérez le type de flux News, utilisez l'option de tri ByModifiedTime pour obtenir les activités les plus récentes (mises en cache) des personnes suivies par l'utilisateur. Sur Site Mon site, ce flux est visible sur la page Échange de News d'un utilisateur.

  • Timeline contient les mises à jour et les billets générés par l'utilisateur actuel, ainsi que par les personnes et le contenu qu'il suit. Timeline est particulièrement utile lorsque vous souhaitez obtenir le flux de données d'un intervalle de temps spécifique ou effectuer un tri avec l'option ByCreatedTime (qui inclut le plus grand échantillon de personnes).

  • Likes contient des fils de discussion de référence avec une propriété PostReference qui représente un billet de l'utilisateur actuel a marqué avec l'attribut J'aime.

  • Everyone contient les fils de discussion provenant de l'ensemble de l'organisation de l'utilisateur actuel.

Les modèles objet Serveur, Client et JavaScript fournissent la méthode GetFeed que vous pouvez utiliser pour récupérer chaque type de flux de l'utilisateur actuel et la méthode GetFeedFor que vous pouvez utiliser pour extraire le type de flux Personal (uniquement) d'un utilisateur spécifié. Les deux méthodes utilisent un objet SocialFeedOptions en tant que paramètre, qui vous permet de spécifier l'ordre du tri en fonction du temps, de la plage de dates et du nombre maximal de fils de discussion à renvoyer.

Remarque

Le service REST offre des ressources distinctes pour récupérer chaque type de flux, comme illustré dans le tableau 2.

Si un fil de discussion contient plus de deux réponses, le serveur renvoie un résumé du fil de discussion qui contient uniquement les deux réponses les plus récentes. (L’attribut de thread IsDigest est appliqué aux synthèses de thread.) Si vous souhaitez obtenir toutes les réponses d’un thread, appelez la méthode GetFullThread à partir de l’objet gestionnaire de flux et transmettez l’identificateur de thread.

Voir aussi