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
No computador de desenvolvimento, abra Visual Studio 2012.
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.
Na lista modelos, escolha Windows e, em seguida, escolha o modelo de Aplicativo de Console.
Nome do projeto ReadWriteMySitee escolha o botão OK.
Adicione referências a assemblies do cliente, da seguinte maneira:
No Solution Explorer, abra o menu de atalho para o projeto ReadWriteMySite e escolha Adicionar referência.
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).
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
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 edomainName\\userName
antes de executar o código.Main()
No método, inicialize o contexto do cliente do SharePoint.ClientContext clientContext = new ClientContext(serverUrl);
Crie a instância SocialFeedManager .
SocialFeedManager feedManager = new SocialFeedManager(clientContext);
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.
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
(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: ");
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();
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.
(Relacionados a UI somente) Sair do programa.
Console.WriteLine("Your reply was published."); Console.ReadKey(false);
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: