Partager via


Suivre des personnes à l'aide du modèle objet de client .NET en SharePoint

Apprenez à utiliser les fonctionnalités de personnes suivantes à l'aide du modèle d'objet client .NET SharePoint.

Pourquoi utiliser les fonctionnalités de suivi Personnes dans SharePoint ?

Dans SharePoint, lorsqu’un utilisateur suit des personnes, les publications et les activités des personnes suivies s’affichent dans le flux d’actualités de l’utilisateur. Grâce aux fonctionnalités de personnes suivantes pour vous concentrer sur les personnes qui vous intéressent pas les utilisateurs, vous pouvez améliorer la pertinence de votre application ou de la solution. Dans le modèle objet client .NET, les personnes que vous suivez sont représentées par des objets SocialActor . Pour effectuer les tâches principales de personnes suivantes dans le modèle d'objet client .NET, vous utilisez l'objet SocialFollowingManager . Cet article explique comment utiliser le modèle d'objet client .NET pour travailler avec les fonctionnalités de personnes suivantes.

Remarque

Nous nous concentrons sur SocialFollowingManager , car il consolide les fonctionnalités de base pour suivre les personnes et le contenu. Toutefois, l'objet PeopleManager contienne des fonctionnalités supplémentaires pour les personnes suivantes, telles que la méthode de AmIFollowedBy(String) et des méthodes qui obtenir l'état suivant d'autres utilisateurs.

Conditions préalables à la configuration de votre environnement de développement pour qu’il fonctionne avec les fonctionnalités de suivi Personnes à l’aide du modèle objet client .NET SharePoint

Pour créer une application console qui utilise le modèle d'objet client .NET pour travailler avec les fonctionnalités de personnes suivantes, vous devez les éléments suivants :

  • SharePoint avec Mon site configuré et avec des profils utilisateur et des sites personnels créés pour l’utilisateur actuel et un utilisateur cible

  • Visual Studio 2012

  • Autorisations d'accès Contrôle total à l'application de service de profil utilisateur pour l'utilisateur connecté

Remarque

Si vous ne développez pas sur l’ordinateur qui exécute SharePoint, téléchargez les composants clients SharePoint qui contiennent des assemblys clients SharePoint.

Créer une application console dans Visual Studio 2012

  1. Ouvrez Visual Studio et choisissez Fichier, Nouveau, Projet.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez .NET Framework 4.5 dans la liste déroulante située en haut de la boîte de dialogue.

  3. Dans la liste des modèles, choisissez fenêtres, puis choisissez le modèle Application Console.

  4. Nommez le projet FollowPeopleCSOM, puis cliquez sur le bouton OK.

  5. Ajoutez des références aux assemblies suivants :

  • Microsoft.SharePoint.Client
  • Microsoft.SharePoint.ClientRuntime
  • Microsoft.SharePoint.Client.UserProfiles
  1. Remplacez le contenu de la classe Program par l'exemple de code de l'un des scénarios suivants :
  1. Pour tester l'application de console, dans la barre de menus, choisissez Déboguer, Démarrer le débogage.

Exemple de code : Démarrer ou arrêter le suivi de personnes à l’aide du modèle objet client .NET SharePoint

L'exemple de code suivant rend la début utilisateur actuel suivant ou l'arrêt suivant un utilisateur cible. Il montre comment :

  • Vérifiez si l’utilisateur actuel suit un utilisateur cible à l’aide de la méthode IsFollowed .

  • Obtenez le nombre de personnes suivies par l’utilisateur actuel à l’aide de la méthode GetFollowedCount .

  • Commencez à suivre l’utilisateur cible à l’aide de la méthode Follow .

  • Arrêtez de suivre l’utilisateur cible à l’aide de la méthode StopFollowing .

Cet exemple de code utilise l’objet SocialFollowResult retourné par la méthode Follow pour déterminer s’il faut démarrer ou arrêter de suivre l’utilisateur cible.

Remarque

[!REMARQUE] Modifier les valeurs d'espace réservé pour les variables serverUrl et targetUser avant d'exécuter le code.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;

namespace FollowPeopleCSOM
{
    class Program
    {
        static ClientContext clientContext;
        static SocialFollowingManager followingManager;
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the target
            // server URL and target user.
            const string serverUrl = "http://serverName";
            const string targetUser = "domainName\\\\userName";

            // Get the client context.
            clientContext = new ClientContext(serverUrl);

            // Get the SocialFeedManager instance.
            followingManager = new SocialFollowingManager(clientContext);

            // Create a SocialActorInfo object to represent the target user.
            SocialActorInfo actorInfo = new SocialActorInfo();
            actorInfo.AccountName = targetUser;

            // Find out whether the current user is following the target user.
            ClientResult<bool> isFollowed = followingManager.IsFollowed(actorInfo);

            // Get the information from the server.
            clientContext.ExecuteQuery();

            Console.WriteLine("Was the current user following the target user? {0}\\n", isFollowed.Value);
            Console.Write("Initial count: ");

            // Get the current count of followed people.
            WriteFollowedCount();

            // Try to follow the target user. If the result is OK, then
            // the request succeeded.
            ClientResult<SocialFollowResult> result = followingManager.Follow(actorInfo);
            clientContext.ExecuteQuery();

            // If the result is AlreadyFollowing, then stop following 
            // the target user.
            if (result.Value == SocialFollowResult.AlreadyFollowing)
            {
                followingManager.StopFollowing(actorInfo);
                clientContext.ExecuteQuery();
            }

            // Handle other SocialFollowResult return values.
            else if (result.Value == SocialFollowResult.LimitReached
                || result.Value == SocialFollowResult.InternalError)
            {
                Console.WriteLine(result.Value);
            }

            // Get the updated count of followed people.
            Console.Write("Updated count: ");
            WriteFollowedCount();
            Console.ReadKey();
        }

        // Get the count of the people who the current user is following.
        static void WriteFollowedCount()
        {
            ClientResult<int> followedCount = followingManager.GetFollowedCount(SocialActorTypes.Users);
            clientContext.ExecuteQuery();
            Console.WriteLine("The current user is following {0} people.", followedCount.Value);
        }
    }
}

Exemple de code : obtenir des abonnés et des personnes suivies à l’aide du modèle objet client .NET SharePoint

L'exemple de code suivant récupère les personnes à la suite de l'utilisateur actuel, obtient les personnes qui sont terminant par l'utilisateur actuel et obtient des informations sur l'état des personnes suivantes de l'utilisateur actuel. Il montre comment :

  • Vérifiez si l’utilisateur actuel suit un utilisateur cible à l’aide de la méthode IsFollowed .

  • Obtenez le nombre de personnes suivies par l’utilisateur actuel à l’aide de la méthode GetFollowedCount .

  • Obtenez les personnes que l’utilisateur actuel suit à l’aide de la méthode GetFollowed .

  • Obtenez les personnes qui suivent l’utilisateur actuel à l’aide de la méthode GetFollowers .

  • Effectuer une itération dans les groupes de personnes et obtenir nom complet de chaque personne, URI personnel et image URI.

Remarque

[!REMARQUE] Modifier les valeurs d'espace réservé pour les variables serverUrl et targetUser avant d'exécuter le code.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;

namespace FollowPeopleCSOM
{
    class Program
    {
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the target
            // server URL and target user.
            const string serverUrl = "http://serverName";
            const string targetUser = "domainName\\\\userName";

            // Get the client context.
            ClientContext clientContext = new ClientContext(serverUrl);
            
            // Get the SocialFeedManager instance.
            SocialFollowingManager followingManager = new SocialFollowingManager(clientContext);

            // Create a SocialActorInfo object to represent the target user.
            SocialActorInfo actorInfo = new SocialActorInfo();
            actorInfo.AccountName = targetUser;

            // Find out whether the current user is following the target user.
            ClientResult<bool> isFollowed = followingManager.IsFollowed(actorInfo);

            // Get the count of people who the current user is following.
            ClientResult<int> followedCount = followingManager.GetFollowedCount(SocialActorTypes.Users);

            // Get the people who the current user is following.
            ClientResult<SocialActor[]> followedResult = followingManager.GetFollowed(SocialActorTypes.Users);

            // Get the people who are following the current user.
            ClientResult<SocialActor[]> followersResult = followingManager.GetFollowers();

            // Get the information from the server.
            clientContext.ExecuteQuery();

            // Write the results to the console window.
            Console.WriteLine("Is the current user following the target user? {0}\\n", isFollowed.Value);
            Console.WriteLine("People who the current user is following: ({0} count)", followedCount.Value);
            IterateThroughPeople(followedResult.Value);
            Console.WriteLine("\\nPeople who are following the current user:");
            IterateThroughPeople(followersResult.Value);
            Console.ReadKey();
        }

        // Iterate through the people and get each person's display
        // name, personal URI, and picture URI.
        static void IterateThroughPeople(SocialActor[] actors)
        {
            foreach (SocialActor actor in actors)
            {
                Console.WriteLine("  - {0}", actor.Name);
                Console.WriteLine("\\tPersonal URI: {0}", actor.PersonalSiteUri);
                Console.WriteLine("\\tPicture URI: {0}", actor.ImageUri);
            }
        }
    }
}

Voir aussi