Compartilhar via


Seguir pessoas usando o modelo de objeto do cliente .NET no SharePoint

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

Por que usar os seguintes recursos de Pessoas no SharePoint?

No SharePoint, quando um usuário segue pessoas, as postagens e as atividades das pessoas seguidas aparecem no feed de notícias do usuário. Usando recursos de pessoas a seguir para focalizar em que as pessoas que se preocupam de usuários, você pode melhorar a relevância de sua solução ou aplicativo. No modelo de objeto cliente .NET, as pessoas que você segue são representadas por objetos SocialActor . Para executar tarefas de pessoas a seguir de núcleo do modelo de objeto do cliente .NET, use o objeto SocialFollowingManager . Este artigo mostra como usar o modelo de objeto do cliente .NET para trabalhar com os recursos de pessoas a seguir.

Observação

Focamos no SocialFollowingManager porque ele consolida a funcionalidade principal para seguir pessoas e conteúdo. No entanto, o objeto PeopleManager contém funcionalidade adicional para seguintes pessoas, como o método AmIFollowedBy(String) e métodos que obtêm o seguinte status de outros usuários.

Pré-requisitos para configurar seu ambiente de desenvolvimento para trabalhar com os seguintes recursos de Pessoas 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 de pessoas a seguir, será necessário o seguinte:

  • SharePoint com Meu Site configurado e com perfis de usuário e sites pessoais criados para o usuário atual e um usuário de destino

  • 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 em Visual Studio 2012

  1. Abra Visual Studio e 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 FollowPeopleCSOMe 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 ou parar de seguir pessoas 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 seguindo um usuário de destino. Ele mostra como:

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

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

  • Comece a seguir o usuário de destino usando o método Follow .

  • Pare de seguir o usuário de destino usando o método StopFollowing .

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 usuário de destino.

Observação

[!OBSERVAçãO] Altere os valores de espaço reservado para as variáveis $ serverUrl e targetUser 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 FollowPeopleCSOM
{
    class Program
    {
        static ClientContext clientContext;
        static SocialFollowingManager followingManager;
        static void Main(string[] args)
        {

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

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

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

            // Create a SocialActorInfo object to represent the target user.
            SocialActorInfo actorInfo = new SocialActorInfo();
            actorInfo.AccountName = targetUser;

            // Find out whether the current user is following the target user.
            ClientResult<bool> isFollowed = followingManager.IsFollowed(actorInfo);

            // Get the information from the server.
            clientContext.ExecuteQuery();

            Console.WriteLine("Was the current user following the target user? {0}\\n", isFollowed.Value);
            Console.Write("Initial count: ");

            // Get the current count of followed people.
            WriteFollowedCount();

            // Try to follow the target user. 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 user.
            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 people.
            Console.Write("Updated count: ");
            WriteFollowedCount();
            Console.ReadKey();
        }

        // Get the count of the people who the current user is following.
        static void WriteFollowedCount()
        {
            ClientResult<int> followedCount = followingManager.GetFollowedCount(SocialActorTypes.Users);
            clientContext.ExecuteQuery();
            Console.WriteLine("The current user is following {0} people.", followedCount.Value);
        }
    }
}

Exemplo de código: obtenha seguidores e siga as pessoas usando o modelo de objeto cliente do .NET do SharePoint

O seguinte exemplo de código obtém as pessoas que o usuário atual está seguindo, obtém as pessoas que são seguidas pelo usuário atual e obtém informações sobre o status de pessoas a seguir do usuário atual. Ele mostra como:

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

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

  • Obtenha as pessoas que o usuário atual está seguindo usando o método GetFollowed .

  • Obtenha as pessoas que estão seguindo o usuário atual usando o método GetFollowers .

  • Percorrer os grupos de pessoas e obtenha o nome de exibição de cada pessoa, o URI de pessoal e o URI da imagem.

Observação

[!OBSERVAçãO] Altere os valores de espaço reservado para as variáveis $ serverUrl e targetUser 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 FollowPeopleCSOM
{
    class Program
    {
        static void Main(string[] args)
        {

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

            // Get the client context.
            ClientContext clientContext = new ClientContext(serverUrl);
            
            // Get the SocialFeedManager instance.
            SocialFollowingManager followingManager = new SocialFollowingManager(clientContext);

            // Create a SocialActorInfo object to represent the target user.
            SocialActorInfo actorInfo = new SocialActorInfo();
            actorInfo.AccountName = targetUser;

            // Find out whether the current user is following the target user.
            ClientResult<bool> isFollowed = followingManager.IsFollowed(actorInfo);

            // Get the count of people who the current user is following.
            ClientResult<int> followedCount = followingManager.GetFollowedCount(SocialActorTypes.Users);

            // Get the people who the current user is following.
            ClientResult<SocialActor[]> followedResult = followingManager.GetFollowed(SocialActorTypes.Users);

            // Get the people who are following the current user.
            ClientResult<SocialActor[]> followersResult = followingManager.GetFollowers();

            // Get the information from the server.
            clientContext.ExecuteQuery();

            // Write the results to the console window.
            Console.WriteLine("Is the current user following the target user? {0}\\n", isFollowed.Value);
            Console.WriteLine("People who the current user is following: ({0} count)", followedCount.Value);
            IterateThroughPeople(followedResult.Value);
            Console.WriteLine("\\nPeople who are following the current user:");
            IterateThroughPeople(followersResult.Value);
            Console.ReadKey();
        }

        // Iterate through the people and get each person's display
        // name, personal URI, and picture URI.
        static void IterateThroughPeople(SocialActor[] actors)
        {
            foreach (SocialActor actor in actors)
            {
                Console.WriteLine("  - {0}", actor.Name);
                Console.WriteLine("\\tPersonal URI: {0}", actor.PersonalSiteUri);
                Console.WriteLine("\\tPicture URI: {0}", actor.ImageUri);
            }
        }
    }
}

Confira também