Partilhar via


Ler e gravar no feed social usando o modelo de objeto do cliente .NET no SharePoint

Crie um aplicativo de console que leia e grave o feed social usando o modelo de objeto do cliente .NET do SharePoint.

Pré-requisitos para criar um aplicativo de console que lê e grava no feed social usando o modelo de objeto cliente do SharePoint .NET

O aplicativo de console que você vai criar recupera o feed do usuário de destino e imprime a postagem de raiz de cada segmento em uma lista numerada. Em seguida, ele publica uma resposta de texto simples para o thread selecionado. O mesmo método ( CreatePost ) é usado para publicar ambas as postagens e respostas de feed.

Para criar o aplicativo de console, você precisará o seguinte:

  • SharePoint com Meu Site configurado, com sites pessoais criados para o usuário atual e um usuário de destino, e com algumas postagens escritas pelo 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.

Conceitos principais para saber sobre como trabalhar com feeds sociais do SharePoint

Tabela 1 contém links para artigos que descrevem os conceitos fundamentais que você deve saber antes de começar.

Tabela 1. Conceitos principais para trabalhar com feeds sociais do SharePoint

Título do artigo Descrição
Introdução ao desenvolvimento de recursos sociais no SharePoint Descubra como começar a programar com feeds sociais e postagens de microblog, seguindo pessoas e conteúdo (documentos, sites e tags.md) e trabalhando com perfis de usuário.
Trabalhar com feeds sociais no SharePoint Saiba mais sobre as tarefas de programação comuns para trabalhar com feeds sociais e da API que você usa para executar as tarefas.

Criar o aplicativo de console em Visual Studio 2012 e adicionará referências a assemblies de cliente

  1. No computador de desenvolvimento, abra Visual Studio 2012.

  2. Na barra de menus, escolha arquivo, novoprojeto. . Na caixa de diálogo Novo Projeto, escolha .NET Framework 4.5 na lista suspensa na parte superior da caixa de diálogo.

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

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

  5. Adicione referências a assemblies do cliente, da seguinte maneira:

    1. No Solution Explorer, abra o menu de atalho para o projeto ReadWriteMySite e escolha Adicionar referência.

    2. Na caixa de diálogo Gerenciador de referência, escolha os assemblies a seguir:

      • Microsoft.SharePoint.Client
      • Microsoft.SharePoint.Client.Runtime
      • Microsoft.SharePoint.Client.UserProfiles

      Se você estiver desenvolvendo no computador que está executando o SharePoint, os assemblies estarão na categoria Extensões . Caso contrário, vá até o local que tem os assemblies de cliente que você baixou (consulte Componentes de cliente do SharePoint).

  6. No arquivo Program.cs, adicione as instruções a seguir using .

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;

Recupere o feed social de um usuário de destino usando o modelo de objeto cliente do .NET do SharePoint

  1. Declarar variáveis para a URL do servidor e credenciais de conta do usuário de destino.

    const string serverUrl = "http://serverName/";
    const string targetUser = "domainName\\userName";
    

    Observação

    Lembre-se de substituir os http://serverName/ valores de espaço reservado e domainName\\userName antes de executar o código.

  2. Main() No método, inicialize o contexto do cliente do SharePoint.

    ClientContext clientContext = new ClientContext(serverUrl);
    
  3. Crie a instância SocialFeedManager .

    SocialFeedManager feedManager = new SocialFeedManager(clientContext);
    
  4. Especifica os parâmetros para o conteúdo de feed que você deseja recuperar.

    SocialFeedOptions feedOptions = new SocialFeedOptions();
    feedOptions.MaxThreadCount = 10;
    

    As opções padrão retornam os primeiros 20 threads no feed, classificados por data da última modificação.

  5. Obtenha o destino feed do usuário.

    ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions);
    clientContext.ExecuteQuery();
    

    GetFeedFor retorna um ClientResult<T> objeto que armazena a coleção de threads em sua propriedade Value .

Iterar e ler no feed social usando o modelo de objeto cliente do .NET do SharePoint

O código a seguir itera-se os threads no feed. Ele verifica se cada thread tem o atributo CanReply e, em seguida, obtém o identificador de thread e o texto da postagem raiz. O código também cria um dicionário para armazenar o identificador de thread (que é usado para responder a um segmento) e grava o texto da postagem raiz do console.

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

Poste uma resposta no feed social usando o modelo de objeto cliente do .NET do SharePoint

  1. (Relacionados a UI somente) Obtenha o thread respondam para e de aviso para a resposta do usuário.

    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:  ");
    
  2. Defina a resposta. O código a seguir obtém o texto da resposta do aplicativo de console.

    SocialPostCreationData postCreationData = new SocialPostCreationData();
    postCreationData.ContentText = Console.ReadLine();
    
  3. Publique a resposta. O parâmetro threadToReplyTo representa a propriedade Id do thread.

    feedManager.CreatePost(threadToReplyTo, postCreationData);
    clientContext.ExecuteQuery();
    

    Observação

    O método CreatePost também é usado para publicar uma postagem raiz no feed do usuário atual passando nulo para o primeiro parâmetro.

  4. (Relacionados a UI somente) Sair do programa.

    Console.WriteLine("Your reply was published.");
    Console.ReadKey(false);
    
  5. Para testar o aplicativo de console, na barra de menus, escolha Depurar, Iniciar depuração.

Exemplo de código: recuperar um feed e responder a uma postagem usando o modelo de objeto cliente do .NET do SharePoint

O exemplo a seguir é o código completo do arquivo Module. vb.

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

Próximas etapas

Para saber como mais tarefas de leitura e gravação de tarefas com o feed social usando o modelo de objeto do cliente .NET, consulte o seguinte:

Confira também