Leer y escribir en la fuente social usando el modelo de objeto de cliente .NET en SharePoint
Crear una aplicación de consola que lea y escriba en la fuente social usando el modelo de objetos del cliente SharePoint .NET.
Requisitos previos para crear una aplicación de consola que lee y escribe en la fuente social mediante el modelo de objetos de cliente .NET de SharePoint
La aplicación de consola que creará recupera la fuente del usuario de destino e imprime la entrada raíz de cada subproceso de una lista numerada. A continuación, publica una respuesta de texto simple para el subproceso seleccionado. El mismo método ( CreatePost ) se usa para publicar ambas entradas y respuestas en la fuente.
Para crear la aplicación de consola, necesitará lo siguiente:
- SharePoint con Mi sitio configurado, con sitios personales creados para el usuario actual y un usuario de destino, y con algunas publicaciones escritas por el usuario de destino
- Visual Studio 2012
- Permisos de acceso Control total sobre la aplicación de servicio Perfil de usuario para el usuario que ha iniciado sesión
Nota:
Si no está desarrollando en el equipo que ejecuta SharePoint, obtenga la descarga componentes de cliente de SharePoint que contiene ensamblados de cliente de SharePoint.
Conceptos básicos para saber sobre cómo trabajar con fuentes sociales de SharePoint
Tabla 1 contiene vínculos a artículos que describen los conceptos básicos que debe conocer antes de empezar.
Tabla 1. Conceptos básicos para trabajar con fuentes sociales de SharePoint
Título del artículo | Descripción |
---|---|
Comience a desarrollar con características sociales en SharePoint | Descubra cómo empezar a programar con fuentes sociales y publicaciones de microblog, seguir a personas y contenido (documentos, sitios y tags.md) y trabajar con perfiles de usuario. |
Trabajar con fuentes sociales en SharePoint | Obtenga información sobre tareas de programación comunes para trabajar con fuentes sociales y la API que se usan para realizar las tareas. |
Cree la aplicación de consola en Visual Studio 2012 y agregue referencias a ensamblados de cliente
En el equipo de desarrollo, abra Visual Studio 2012.
En la barra de menús, seleccione Archivo, Nuevo, Proyecto. . En el cuadro de diálogo Nuevo proyecto, seleccione .NET Framework 4.5 en la lista desplegable situada en la parte superior del cuadro de diálogo.
En la lista de plantillas, elija Windows y, a continuación, elija la plantilla Aplicación de consola.
Nombre del proyecto ReadWriteMySitey, a continuación, elija el botón Aceptar.
Agregue referencias a los ensamblados de cliente, como se indica a continuación:
En el Explorador de soluciones, abra el menú contextual para el proyecto ReadWriteMySite y, a continuación, seleccione Agregar referencia.
En el cuadro de diálogo Administrador de referencia, seleccione los siguientes ensamblados:
- Microsoft.SharePoint.Client
- Microsoft.SharePoint.Client.Runtime
- Microsoft.SharePoint.Client.UserProfiles
Si está desarrollando en el equipo que ejecuta SharePoint, los ensamblados se encuentran en la categoría Extensiones . De lo contrario, vaya a la ubicación que tiene los ensamblados del cliente que ha descargado (vea Componentes de cliente de SharePoint).
En el archivo Program.cs, agregue las siguientes
using
instrucciones.
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;
Recuperación de la fuente social para un usuario de destino mediante el modelo de objetos de cliente .NET de SharePoint
Declarar las variables para la dirección URL del servidor y las credenciales de cuenta de usuario de destino.
const string serverUrl = "http://serverName/"; const string targetUser = "domainName\\userName";
Nota:
Recuerde reemplazar los valores de
http://serverName/
marcador de posición ydomainName\\userName
antes de ejecutar el código.En el
Main()
método , inicialice el contexto de cliente de SharePoint.ClientContext clientContext = new ClientContext(serverUrl);
Cree la instancia de SocialFeedManager .
SocialFeedManager feedManager = new SocialFeedManager(clientContext);
Especifique los parámetros para el contenido de la fuente que se va a recuperar.
SocialFeedOptions feedOptions = new SocialFeedOptions(); feedOptions.MaxThreadCount = 10;
Las opciones predeterminadas de devuelven los primeros 20 subprocesos en la fuente, ordenados por fecha de última modificación.
Obtenga el destino de fuente del usuario.
ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions); clientContext.ExecuteQuery();
GetFeedFor devuelve un
ClientResult<T>
objeto que almacena la colección de subprocesos en su propiedad Value .
Recorrer en iteración y leer desde la fuente social mediante el modelo de objetos de cliente de .NET de SharePoint
El siguiente código recorre los subprocesos de la fuente. Comprueba si cada subproceso tiene el atributo CanReply y, a continuación, obtiene el identificador de subproceso y el texto de la publicación raíz. El código también crea un diccionario para almacenar el identificador del subproceso (que se utiliza para responder a un subproceso) y escribe el texto de la entrada raíz en la consola.
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);
}
}
Publicar una respuesta a la fuente social mediante el modelo de objetos de cliente .NET de SharePoint
(Relacionadas con la interfaz de usuario únicamente) Obtenga el subproceso para responder a y símbolo del sistema para la respuesta del usuario.
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: ");
Definir la respuesta. El código siguiente obtiene el texto de la respuesta de la aplicación de consola.
SocialPostCreationData postCreationData = new SocialPostCreationData(); postCreationData.ContentText = Console.ReadLine();
Publicar la respuesta. El parámetro threadToReplyTo representa la propiedad Id del subproceso.
feedManager.CreatePost(threadToReplyTo, postCreationData); clientContext.ExecuteQuery();
Nota:
El método CreatePost también se usa para publicar una publicación raíz en la fuente del usuario actual pasando null para el primer parámetro.
(Relacionadas con la interfaz de usuario únicamente) Salga del programa.
Console.WriteLine("Your reply was published."); Console.ReadKey(false);
Para probar la aplicación de consola, en la barra de menús, seleccione Depurar, Iniciar depuración.
Ejemplo de código: Recuperación de una fuente y respuesta a una publicación mediante el modelo de objetos de cliente .NET de SharePoint
En el siguiente ejemplo es el código completo del archivo 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.
}
}
}
Pasos siguientes
Para aprender a más de las tareas de lectura y escritura tareas con la fuente social usando el modelo de objetos de cliente. NET, consulte lo siguiente: