Compartilhar via


Seguir documentos e sites usando o modelo de objeto do cliente .NET no SharePoint

Saiba como trabalhar com os recursos Seguir Conteúdo usando o modelo de objeto do cliente .NET do SharePoint.

Como usar o modelo de objeto do cliente .NET para seguir conteúdo?

Os usuários do SharePoint podem seguir documentos, sites e marcas podem seguir documentos, sites e marcas para obter atualizações sobre os itens em seus feeds de notícias e abrir rapidamente documentos e sites seguidos. Você pode usar o modelo de objeto do cliente .NET no seu aplicativo ou solução seguindo o conteúdo de iniciar, parar de seguir conteúdo e obter seguido conteúdo em nome do usuário atual. Este artigo mostra como criar um aplicativo de console que usa o modelo de objeto do cliente .NET para trabalhar com os recursos seguinte conteúdo para documentos e sites.

Os seguintes objetos são as APIs do principais para conteúdo seguintes tarefas:

Observação

[!OBSERVAçãO] You also use these APIs for Following People tasks, but the GetSuggestions and GetFollowers methods available from SocialFollowingManager only support following people, not content. Para obter mais informações sobre como você pode usar o SocialFollowingManager , confira Seguir conteúdo no SharePoint e Seguir pessoas no SharePoint. Para obter exemplos de código que mostram como seguir as pessoas, consulte Como seguir as pessoas usando o modelo de objeto cliente .NET no SharePoint.

Pré-requisitos para configurar seu ambiente de desenvolvimento para trabalhar com os seguintes recursos de conteúdo usando o modelo de objeto cliente do .NET do SharePoint

Para criar um aplicativo de console que usa o modelo de objeto do cliente .NET para trabalhar com os recursos seguinte conteúdo para documentos e sites, será necessário o seguinte:

  • SharePoint com Meu Site configurado, com o site Meu Site criado para o usuário atual e com um documento carregado em uma biblioteca de documentos do SharePoint

  • Visual Studio 2012

  • Permissões de acesso de Controle total para o aplicativo de serviço de perfil de usuário para o usuário conectado

Observação

Se você não estiver desenvolvendo no computador que está executando o SharePoint, obtenha o download de Componentes do Cliente do SharePoint que contém assemblies de cliente do SharePoint.

Criar um aplicativo de console para trabalhar com os seguintes recursos de conteúdo usando o modelo de objeto cliente do .NET do SharePoint

  1. No Visual Studio, escolha arquivo, novoprojeto.

  2. Na caixa de diálogo Novo projeto, escolha o .NET Framework 4.5 da lista suspensa na parte superior da caixa de diálogo.

  3. Na lista de modelos, escolha Windows e, em seguida, escolha o modelo de Aplicativo de Console.

  4. Nome do projeto FollowContentCSOMe escolha o botão OK.

  5. Adicione referências a assemblies a seguir:

  • Microsoft.SharePoint.Client
  • Microsoft.SharePoint.ClientRuntime
  • Microsoft.SharePoint.Client.UserProfiles
  1. Substitua o conteúdo da classe Program o exemplo de código de um dos seguintes cenários:
  1. Para testar o aplicativo de console, na barra de menus, escolha Depurar, Iniciar depuração.

Exemplo de código: iniciar e parar o seguinte conteúdo usando o modelo de objeto cliente do .NET do SharePoint

O exemplo de código a seguir torna o início de usuário atual seguindo ou parar segue um item de destino. Ele mostra como:

  • Verifique se o usuário atual está seguindo um documento ou site específico usando o método IsFollowed .

  • Comece a seguir um documento ou site usando o método Follow .

  • Pare de seguir um documento ou site usando o método StopFollowing .

  • Obtenha a contagem de documentos ou sites que o usuário atual está seguindo usando o método GetFollowedCount .

Este exemplo de código usa o objeto SocialFollowResult que é retornado pelo método Follow para determinar se deve iniciar ou parar de seguir o item de destino.

Observação

[!OBSERVAçãO] Altere os valores de espaço reservado para as variáveis $ serverUrl e contentUrl antes de executar o código. Para usar um site, em vez de um documento, use as variáveis que são comentadas.


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

Exemplo de código: obter conteúdo seguido usando o modelo de objeto cliente do .NET do SharePoint

O exemplo de código a seguir obtém os documentos e sites que o usuário atual está seguindo e obtém informações sobre o status do usuário seguinte conteúdo. Ele mostra como:

  • Verifique se o usuário atual está seguindo o documento e o site de destino usando o método IsFollowed .

  • Obtenha a contagem de documentos e sites que o usuário atual está seguindo usando o método GetFollowedCount .

  • Obtenha os documentos e sites que o usuário atual está seguindo usando o método GetFollowed .

  • Percorrer os grupos de conteúdo e obtenha cada item nome, conteúdo URI e URI.

Observação

[!OBSERVAçãO] Altere o valor de espaço reservado para as variáveis serverUrl, docContentUrle siteContentUrl antes de executar o 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);
            }
        }
    }
}

Confira também