Partager via


Suivre des documents et des sites à l'aide du modèle d'objet client .NET dans SharePoint

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

Comment utiliser le modèle d'objet client .NET pour suivre le contenu ?

Les utilisateurs SharePoint peuvent suivre des documents, des sites et des balises peuvent suivre des documents, des sites et des balises pour obtenir des mises à jour sur les éléments de leurs flux d’actualités et ouvrir rapidement les documents et sites suivis. Vous pouvez utiliser le modèle d'objet client .NET dans votre application ou de suivi de solution pour démarrer le suivi de contenu, arrêter le suivi de contenu et obtenir le contenu pour le compte de l'utilisateur actuel. Cet article vous montre comment créer une application console qui utilise le modèle d'objet client .NET pour travailler avec des fonctionnalités de contenu suivant pour les documents et les sites.

Les objets suivants sont les API principales pour les tâches de contenu suivants :

Remarque

[!REMARQUE] You also use these APIs for Following People tasks, but the GetSuggestions and GetFollowers methods available from SocialFollowingManager only support following people, not content. Pour plus d’informations sur l’utilisation de SocialFollowingManager , voir Suivre le contenu dans SharePoint et Suivre des personnes dans SharePoint. Pour obtenir des exemples de code qui montrent comment suivre des personnes, voir Guide pratique pour suivre des personnes à l’aide du modèle objet client .NET dans SharePoint.

Conditions préalables à la configuration de votre environnement de développement pour qu’il fonctionne avec les fonctionnalités De contenu suivant à 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 des fonctionnalités de contenu suivant pour les documents et les sites, vous devez les éléments suivants :

  • SharePoint avec Mon site configuré, avec le site Mon site créé pour l’utilisateur actuel et avec un document chargé dans une bibliothèque de documents SharePoint

  • 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 pour utiliser les fonctionnalités De contenu suivant à l’aide du modèle objet client .NET SharePoint

  1. Dans Visual Studio, choisissez successivement Fichier, Nouveau, puis 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.

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

  4. Nommez le projet FollowContentCSOM, 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 avec l'exemple de code à partir d'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 et arrêter le suivi du contenu à l’aide du modèle objet client .NET SharePoint

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

  • Vérifiez si l’utilisateur actuel suit un document ou un site particulier à l’aide de la méthode IsFollowed .

  • Commencez à suivre un document ou un site à l’aide de la méthode Follow .

  • Arrêtez le suivi d’un document ou d’un site à l’aide de la méthode StopFollowing .

  • Obtenez le nombre de documents ou de sites que l’utilisateur actuel suit à l’aide de la méthode GetFollowedCount .

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 le suivi de l’élément cible.

Remarque

[!REMARQUE] Modifier les valeurs d'espace réservé pour les variables serverUrl et contentUrl avant d'exécuter le code. Pour utiliser un site au lieu d'un document, utilisez les variables qui sont commentés.


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

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

            // Replace the following placeholder values with the URL of the target
            // server and target document (or site).
            const string serverUrl = "http://serverName";
            const string contentUrl = @"http://serverName/libraryName/fileName";
            const SocialActorType contentType = SocialActorType.Document;
            // Do not use a trailing '/' for a subsite.
            //const string contentUrl = @"http://serverName/subsiteName"; 
            //const SocialActorType contentType = SocialActorType.Site;

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

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

            // Create a SocialActorInfo object to represent the target item.
            SocialActorInfo actorInfo = new SocialActorInfo();
            actorInfo.ContentUri = contentUrl;
            actorInfo.ActorType = contentType;

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

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

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

            // Get the current count of followed items.
            WriteFollowedCount(actorInfo.ActorType);

            // Try to follow the target item. 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 item.
            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 items.
            Console.Write("Updated count: ");
            WriteFollowedCount(actorInfo.ActorType);
            Console.ReadKey();
        }

        // Get the count of the items that the current user is following.
        static void WriteFollowedCount(SocialActorType type)
        {

            // Set the parameter for the GetFollowedCount method, and
            // handle the case where the item is a site. 
            SocialActorTypes types = SocialActorTypes.Documents;
            if (type != SocialActorType.Document)
            {
                types = SocialActorTypes.Sites;
            }

            ClientResult<int> followedCount = followingManager.GetFollowedCount(types);
            clientContext.ExecuteQuery();
            Console.WriteLine("{0} followed {1}", followedCount.Value, types.ToString().ToLower());
        }
    }
}

Exemple de code : Obtenir le contenu suivi à l’aide du modèle objet client .NET SharePoint

L'exemple de code suivant obtient les documents et les sites que l'utilisateur actuel est suivi et obtient des informations sur l'état du contenu suivant l'utilisateur. Il montre comment :

  • Vérifiez si l’utilisateur actuel suit le document et le site cibles à l’aide de la méthode IsFollowed .

  • Obtenez le nombre de documents et de sites que l’utilisateur actuel suit à l’aide de la méthode GetFollowedCount .

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

  • Effectuer une itération dans les groupes de contenu et obtenez de chaque élément nom, contenu URI et URI.

Remarque

[!REMARQUE] Modifiez la valeur de l'espace réservé pour les variables serverUrl, docContentUrlet siteContentUrl 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 FollowContentCSOM
{
    class Program
    {
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the URLs of
            // the target server, document, and site.
            const string serverUrl = "http://serverName";
            const string docContentUrl = @"http://serverName/libraryName/fileName";
            const string siteContentUrl = @"http://serverName/subsiteName"; // do not use a trailing '/' for a subsite

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

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

            // Create SocialActorInfo objects to represent the target 
            // document and site.
            SocialActorInfo docActorInfo = new SocialActorInfo();
            docActorInfo.ContentUri = docContentUrl;
            docActorInfo.ActorType = SocialActorType.Document;
            SocialActorInfo siteActorInfo = new SocialActorInfo();
            siteActorInfo.ContentUri = siteContentUrl;
            siteActorInfo.ActorType = SocialActorType.Site;

            // Find out whether the current user is following the target
            // document and site.
            ClientResult<bool> isDocFollowed = followingManager.IsFollowed(docActorInfo);
            ClientResult<bool> isSiteFollowed = followingManager.IsFollowed(siteActorInfo);

            // Get the count of documents and sites that the current
            // user is following.
            ClientResult<int> followedDocCount = followingManager.GetFollowedCount(SocialActorTypes.Documents);
            ClientResult<int> followedSiteCount = followingManager.GetFollowedCount(SocialActorTypes.Sites);

            // Get the documents and the sites that the current user
            // is following.
            ClientResult<SocialActor[]> followedDocResult = followingManager.GetFollowed(SocialActorTypes.Documents);
            ClientResult<SocialActor[]> followedSiteResult = followingManager.GetFollowed(SocialActorTypes.Sites);

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

            // Write the results to the console window.
            Console.WriteLine("Is the current user following the target document? {0}", isDocFollowed.Value);
            Console.WriteLine("Is the current user following the target site? {0}", isSiteFollowed.Value);
            if (followedDocCount.Value > 0)
            {
                IterateThroughContent(followedDocCount.Value, followedDocResult.Value);
            } if (followedSiteCount.Value > 0)
            {
                IterateThroughContent(followedSiteCount.Value, followedSiteResult.Value);
            }
            Console.ReadKey();
        }

        // Iterate through the items and get each item's display
        // name, content URI, and absolute URI.
        static void IterateThroughContent(int count, SocialActor[] actors)
        {
            SocialActorType actorType = actors[0].ActorType;
            Console.WriteLine("\\nThe current user is following {0} {1}s:", count, actorType.ToString().ToLower());
            foreach (SocialActor actor in actors)
            {
                Console.WriteLine("  - {0}", actor.Name);
                Console.WriteLine("\\tContent URI: {0}", actor.ContentUri);
                Console.WriteLine("\\tURI: {0}", actor.Uri);
            }
        }
    }
}

Voir aussi