Compartir a través de


Siga los documentos y sitios usando el modelo de objeto cliente .NET en SharePoint

Aprenda a trabajar con las características de los siguientes contenidos utilizando el modelo de objeto cliente de SharePoint .NET.

¿Cómo se puede usar el modelo de objetos de cliente de .NET para seguir contenido?

Los usuarios de SharePoint pueden seguir documentos, sitios y etiquetas que pueden seguir documentos, sitios y etiquetas para obtener actualizaciones sobre los elementos de sus suministros de noticias y abrir rápidamente los documentos y sitios seguidos. Puede usar el modelo de objetos de cliente de .NET en la aplicación o solución para iniciar el siguiente contenido, dejar de seguir contenido y obtener seguido contenido en nombre del usuario actual. En este artículo se muestra cómo crear una aplicación de consola que usa el modelo de objetos de cliente de .NET para trabajar con las características de seguimiento de contenido de documentos y sitios.

Los siguientes objetos son las API principales para tareas de contenido siguientes:

Nota:

[!NOTA] También se pueden utilizar estas API para tareas de seguimiento de personas, pero los métodos GetSuggestions y GetFollowers disponibles en SocialFollowingManager sólo admiten seguir personas, no contenido. Para obtener más información sobre cómo puede usar SocialFollowingManager , vea Seguimiento de contenido en SharePoint y Seguimiento de personas en SharePoint. Para ver ejemplos de código que muestran cómo seguir a las personas, vea How to: Follow people by using the .NET client object model in SharePoint (Cómo: Seguir a las personas mediante el modelo de objetos de cliente de .NET en SharePoint).

Requisitos previos para configurar el entorno de desarrollo para trabajar con las características de contenido siguiente mediante el modelo de objetos de cliente .NET de SharePoint

Para crear una aplicación de consola que usa el modelo de objetos de cliente de .NET para trabajar con las características de seguimiento de contenido de documentos y sitios, necesitará lo siguiente:

  • SharePoint con Mi sitio configurado, con el sitio Mi sitio creado para el usuario actual y con un documento cargado en una biblioteca de documentos de SharePoint

  • 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.

Creación de una aplicación de consola para trabajar con las siguientes características de contenido mediante el modelo de objetos de cliente .NET de SharePoint

  1. En Visual Studio, elija Archivo, Nuevo, Proyecto.

  2. 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.

  3. En la lista Plantillas, seleccione Windows y, después, elija la plantilla Aplicación de consola.

  4. Nombre del proyecto FollowContentCSOMy, a continuación, elija el botón Aceptar.

  5. Agregue referencias a los ensamblados siguientes:

  • Microsoft.SharePoint.Client
  • Microsoft.SharePoint.ClientRuntime
  • Microsoft.SharePoint.Client.UserProfiles
  1. Reemplace el contenido de la clase Program con el ejemplo de código de uno de los siguientes escenarios:
  1. Para probar la aplicación de consola, en la barra de menús, seleccione Depurar, Iniciar depuración.

Ejemplo de código: Iniciar y detener el siguiente contenido mediante el modelo de objetos de cliente de .NET de SharePoint

En el ejemplo de código siguiente se convierte el inicio de usuario actual sigue o la detención sigue un elemento de destino. Muestra cómo:

  • Compruebe si el usuario actual sigue un documento o sitio determinado mediante el método IsFollowed .

  • Empiece a seguir un documento o sitio mediante el método Follow .

  • Deje de seguir un documento o sitio mediante el método StopFollowing .

  • Obtenga el recuento de documentos o sitios que sigue el usuario actual mediante el método GetFollowedCount .

En este ejemplo de código se usa el objeto SocialFollowResult devuelto por el método Follow para determinar si se debe iniciar o dejar de seguir el elemento de destino.

Nota:

[!NOTA] Cambie los valores de marcador de posición para las variables serverUrl y contentUrl antes de ejecutar el código. Para usar un sitio en lugar de un documento, use las variables que están dentro de comentarios.


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());
        }
    }
}

Ejemplo de código: Obtención de contenido seguido mediante el modelo de objetos de cliente de .NET de SharePoint

En el ejemplo de código siguiente se obtiene los documentos y sitios que el usuario actual sigue y obtiene información sobre el estado del usuario siguiente contenido. Muestra cómo:

  • Compruebe si el usuario actual sigue el documento de destino y el sitio mediante el método IsFollowed .

  • Obtenga el recuento de documentos y sitios que sigue el usuario actual mediante el método GetFollowedCount .

  • Obtenga los documentos y sitios que sigue el usuario actual mediante el método GetFollowed .

  • Iterar a través de los grupos de contenido y obtenga cada elemento nombre, contenido URI y URI.

Nota:

[!NOTA] Cambie el valor de marcador de posición de las variables serverUrl, docContentUrly siteContentUrl antes de ejecutar el código.


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);
            }
        }
    }
}

Vea también