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 SharePoint modèle objet client .NET
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 site Mon site configuré, avec des sites personnels créés pour l’utilisateur actuel et un utilisateur cible, et avec quelques publications écrites 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é
Notes
Si vous ne réalisez pas le développement sur l’ordinateur qui exécute SharePoint, téléchargez les composants clients SharePoint qui contiennent les assemblys côté client SharePoint.
Concepts fondamentaux à connaître sur l’SharePoint flux sociaux
Le tableau 1 contient des liens vers des articles qui décrivent les principaux concepts à connaître avant de commencer.
Tableau 1. Concepts fondamentaux pour l’SharePoint flux sociaux
| Titre de l’article | Description |
|---|---|
| Mise en route du développement avec les fonctions sociales dans SharePoint | Découvrez comment commencer à programmer avec des flux sociaux et des billets de microblog, suivre des personnes et du contenu (documents, sites et tags.md) et travailler avec 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
Sur votre ordinateur de développement, ouvrez Visual Studio 2012.
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 de la boîte de dialogue.
Dans la liste de modèles, sélectionnez Windows, puis le modèle Application Console.
Nommez le projet ReadWriteMySite, puis cliquez sur le bouton OK.
Ajoutez des références aux assemblys client, comme suit :
Dans L'Explorateur de solutions, ouvrez le menu contextuel du projet ReadWriteMySite, puis choisissez Ajouter une référence.
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).
Dans le fichier Program.cs, ajoutez les
usinginstructions suivantes.
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;
Récupérer le flux social d’un utilisateur cible à l’aide SharePoint modèle objet client .NET
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";Notes
[!REMARQUE] N'oubliez pas de remplacer les valeurs des espaces réservés
http://serverName/etdomainName\\userNameavant d'exécuter le code.Dans la
Main()méthode, initialisez le SharePoint client.ClientContext clientContext = new ClientContext(serverUrl);Créez l’instance SocialFeedManager.
SocialFeedManager feedManager = new SocialFeedManager(clientContext);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.
Obtenez la cible du flux de l'utilisateur.
ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions); clientContext.ExecuteQuery();GetFeedFor renvoie un
ClientResult<T>objet qui stocke la collection de threads dans sa propriété Value.
Iterate through and read from the social feed by using the SharePoint .NET client object model
Le code suivant effectue une itération dans les threads dans le flux. Il vérifie si chaque thread possède l'attribut CanReply , puis il obtient l'identificateur de thread et le texte de la publication de la 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 SharePoint objet client .NET
(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: ");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();Publier la réponse. Le paramètre threadToReplyTo représente de la propriété du thread Id .
feedManager.CreatePost(threadToReplyTo, postCreationData); clientContext.ExecuteQuery();Notes
[!REMARQUE] La méthode CreatePost est également utilisée pour publier un billet racine au flux RSS pour l'utilisateur actuel en transmettant null pour le premier paramètre.
(Liées à l'interface utilisateur uniquement) Quitter le programme.
Console.WriteLine("Your reply was published."); Console.ReadKey(false);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 à un billet à l’aide SharePoint modèle objet client .NET
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.
}
}
}
Prochaines étapes
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 :