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.

Observação

As funcionalidades sociais clássicas do SharePoint (Newsfeed e People Seguintes) são preteridas e não são suportadas em experiências modernas do SharePoint Online. A Microsoft recomenda a utilização de serviços modernos do Microsoft 365, como Viva Engage para cenários sociais e de comunidade. As APIs neste artigo aplicam-se principalmente a ambientes no local do Servidor do SharePoint.

Porquê utilizar as funcionalidades De seguir People no SharePoint?

No SharePoint, quando um utilizador segue pessoas, as publicações e atividades das pessoas seguidas aparecem no newsfeed do utilizador. 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 de cliente .NET, as pessoas que 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

Focamo-nos no SocialFollowingManager porque consolida a funcionalidade principal para seguir pessoas e conteúdos. 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 o seu ambiente de desenvolvimento para trabalhar com as funcionalidades Seguir People com o modelo de objeto de cliente .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 O Meu Site configurado e com perfis de utilizador e sites pessoais criados para o utilizador atual e um utilizador de destino
  • Visual Studio
  • 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 não estiver a desenvolver no computador que está a executar o SharePoint, obtenha a transferência dos Componentes de Cliente do SharePoint que contém assemblagens de cliente do SharePoint.

Criar uma aplicação de consola no Visual Studio

  1. Abra Visual Studio e escolha arquivo, novoprojeto.
  2. Na caixa de diálogo Novo Projeto, selecione .NET Framework 4.5 ou posterior na lista pendente 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. Dê o nome FollowPeopleCSOM ao projeto e, em seguida, selecione 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 com o modelo de objeto de cliente .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 utilizador atual está a seguir um utilizador de destino com o método IsFollowed .
  • Obtenha a contagem de pessoas que o utilizador atual está a seguir com o método GetFollowedCount .
  • Comece a seguir o utilizador de destino com o método Follow (Seguir ).
  • Deixe de seguir o utilizador de destino com o método StopFollowing .

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

Observação

Altere os valores de marcador de posição das serverUrl variáveis 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: obter seguidores e pessoas seguidas com o modelo de objeto de cliente .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 utilizador atual está a seguir um utilizador de destino com o método IsFollowed .
  • Obtenha a contagem de pessoas que o utilizador atual está a seguir com o método GetFollowedCount .
  • Obtenha as pessoas que o utilizador atual está a seguir através do método GetFollowed .
  • Obtenha as pessoas que estão a seguir o utilizador atual através do 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

Altere os valores de marcador de posição das serverUrl variáveis 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