Partager via


Lire et écrire dans le flux de mise en réseau en utilisant le modèle objet de client .NET dans SharePoint

Créer une application console qui lit et écrit dans le flux de mise en réseau à l'aide du modèle d'objet client .NET SharePoint.

Conditions préalables à la création d’une application console qui lit et écrit dans le flux social à l’aide du modèle objet client .NET SharePoint

L'application de console que vous créerez récupère les flux d'un utilisateur cible et imprime le billet de blog racine de chaque thread d'une liste numérotée. Ensuite, il publie une réponse texte simple pour le thread sélectionné. La même méthode ( CreatePost ) est utilisée pour publier les billets et réponses au flux.

Pour créer l'application console, vous devez les éléments suivants :

  • SharePoint avec Mon site configuré, avec des sites personnels créés pour l’utilisateur actuel et un utilisateur cible, et avec quelques billets écrits par l’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.

Concepts de base à connaître sur l’utilisation des flux sociaux SharePoint

Le tableau 1 contient des liens vers des articles qui décrivent les principaux concepts à connaître avant de commencer.

Tableau 1. Concepts de base pour l’utilisation des flux sociaux SharePoint

Titre de l’article Description
Mise en route du développement de fonctionnalités sociales dans SharePoint Découvrez comment commencer à programmer avec des flux sociaux et des publications de microblog, suivre des personnes et du contenu (documents, sites et tags.md) et utiliser des profils utilisateur.
Utiliser des flux sociaux dans SharePoint Découvrez les tâches de programmation courantes pour l'utilisation de l'API que vous utilisez pour effectuer les tâches et les flux sociaux.

Créer l'application console dans Visual Studio 2012 et ajoutez des références aux assemblys du client

  1. Sur votre ordinateur de développement, ouvrez Visual Studio 2012.

  2. On the menu bar, choose File, New, Project. . 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 de modèles, sélectionnez Windows, puis le modèle Application Console.

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

  5. Ajoutez des références aux assemblys client, comme suit :

    1. Dans L'Explorateur de solutions, ouvrez le menu contextuel du projet ReadWriteMySite, puis choisissez Ajouter une référence.

    2. Dans la boîte de dialogue Gestionnaire de référence, sélectionnez les assemblys suivants :

      • Microsoft.SharePoint.Client
      • Microsoft.SharePoint.Client.Runtime
      • Microsoft.SharePoint.Client.UserProfiles

      Si vous développez sur l’ordinateur qui exécute SharePoint, les assemblys sont dans la catégorie Extensions . Dans le cas contraire, accédez à l'emplacement contenant les assemblys de client que vous avez téléchargé (voir Les composants Client SharePoint).

  6. Dans le fichier Program.cs, ajoutez les instructions suivantes using .

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;

Récupérer le flux social pour un utilisateur cible à l’aide du modèle objet client .NET SharePoint

  1. Déclarer des variables pour l'URL du serveur et de cibler les informations d'identification du compte d'utilisateur.

    const string serverUrl = "http://serverName/";
    const string targetUser = "domainName\\userName";
    

    Remarque

    N’oubliez pas de remplacer les valeurs d’espace http://serverName/ réservé et domainName\\userName avant d’exécuter le code.

  2. Dans la Main() méthode , initialisez le contexte client SharePoint.

    ClientContext clientContext = new ClientContext(serverUrl);
    
  3. Créez l’instance SocialFeedManager .

    SocialFeedManager feedManager = new SocialFeedManager(clientContext);
    
  4. Spécifier les paramètres pour le contenu du flux que vous souhaitez récupérer.

    SocialFeedOptions feedOptions = new SocialFeedOptions();
    feedOptions.MaxThreadCount = 10;
    

    Les options par défaut renvoyer les 20 premiers threads dans le flux, triés par date de dernière modification.

  5. Obtenez la cible du flux de l'utilisateur.

    ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions);
    clientContext.ExecuteQuery();
    

    GetFeedFor retourne un ClientResult<T> objet qui stocke la collection de threads dans sa propriété Value .

Itérer et lire à partir du flux social à l’aide du modèle objet client .NET SharePoint

Le code suivant effectue une itération dans les threads dans le flux. Il vérifie si chaque thread a l’attribut CanReply , puis obtient l’identificateur de thread et le texte du billet racine. Le code crée un dictionnaire pour stocker l'identificateur du thread (qui est utilisé pour répondre à un thread) également et écrit le texte de la publication de la racine dans la console.

Dictionary<int, string> idDictionary = new Dictionary<int, string>();
for (int i = 0; i < feed.Value.Threads.Length; i++)
{
    SocialThread thread = feed.Value.Threads[i];
    string postText = thread.RootPost.Text;
    if (thread.Attributes.HasFlag(SocialThreadAttributes.CanReply))
    {
        idDictionary.Add(i, thread.Id);
        Console.WriteLine("\\t" + (i + 1) + ". " + postText);
    }
}

Publier une réponse au flux social à l’aide du modèle objet client .NET SharePoint

  1. (Liées à l'interface utilisateur uniquement) Obtenez le thread répondent à destination et invite pour la réponse de l'utilisateur.

    Console.Write("Which post number do you want to reply to?  ");
    string threadToReplyTo = "";
    int threadNumber = int.Parse(Console.ReadLine()) - 1;
    idDictionary.TryGetValue(threadNumber, out threadToReplyTo);
    Console.Write("Type your reply:  ");
    
  2. Définir la réponse. Le code suivant obtient le texte de la réponse de l'application de console.

    SocialPostCreationData postCreationData = new SocialPostCreationData();
    postCreationData.ContentText = Console.ReadLine();
    
  3. Publier la réponse. Le paramètre threadToReplyTo représente la propriété Id du thread.

    feedManager.CreatePost(threadToReplyTo, postCreationData);
    clientContext.ExecuteQuery();
    

    Remarque

    La méthode CreatePost est également utilisée pour publier un billet racine dans le flux de l’utilisateur actuel en passant la valeur Null pour le premier paramètre.

  4. (Liées à l'interface utilisateur uniquement) Quitter le programme.

    Console.WriteLine("Your reply was published.");
    Console.ReadKey(false);
    
  5. Pour tester l'application de console, dans la barre de menus, choisissez Déboguer, Démarrer le débogage.

Exemple de code : Récupérer un flux et répondre à une publication à l’aide du modèle objet client .NET SharePoint

L'exemple suivant est le code complet à partir du fichier Program.cs.

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

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

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

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

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

            // Specify the parameters for the feed content that you want to retrieve.
            SocialFeedOptions feedOptions = new SocialFeedOptions();
            feedOptions.MaxThreadCount = 10;

            // Get the target owner's feed (posts and activities) and then run the request on the server.
            ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions);
            clientContext.ExecuteQuery();

            // Create a dictionary to store the Id property of each thread. This code example stores
            // the ID so a user can select a thread to reply to from the console application.
            Dictionary<int, string> idDictionary = new Dictionary<int, string>();
            for (int i = 0; i < feed.Value.Threads.Length; i++)
            {
                SocialThread thread = feed.Value.Threads[i];

                // Keep only the threads that can be replied to.
                if (thread.Attributes.HasFlag(SocialThreadAttributes.CanReply))
                {
                    idDictionary.Add(i, thread.Id);

                    // Write out the text of the post.
                    Console.WriteLine("\\t" + (i + 1) + ". " + thread.RootPost.Text);
                }
            }
            Console.Write("Which post number do you want to reply to?  ");

            string threadToReplyTo = "";
            int threadNumber = int.Parse(Console.ReadLine()) - 1;
            idDictionary.TryGetValue(threadNumber, out threadToReplyTo);

            Console.Write("Type your reply:  ");

            // Define properties for the reply.
            SocialPostCreationData postCreationData = new SocialPostCreationData();
            postCreationData.ContentText = Console.ReadLine();

            // Post the reply and make the changes on the server.
            feedManager.CreatePost(threadToReplyTo, postCreationData);
            clientContext.ExecuteQuery();

            Console.WriteLine("Your reply was published.");
            Console.ReadKey(false);

            // TODO: Add error handling and input validation.
        }
    }
}

Étapes suivantes

Pour savoir comment plus tâches de lire et écrire des tâches avec le flux sociaux à l'aide du modèle d'objet client .NET, consultez les rubriques suivantes :

Voir aussi