Ler e gravar no feed social usando o serviço REST no SharePoint
Crie um aplicativo hospedado no SharePoint que use o serviço REST para publicar uma postagem e obter o feed pessoal do usuário atual.
Pré-requisitos para criar um Suplemento do SharePoint hospedado pelo SharePoint que publica uma postagem e obtém o feed social usando o serviço REST do SharePoint
Este artigo pressupõe que você crie o Suplemento do SharePoint usando Napa em um Office 365 Site do desenvolvedor. Se você estiver usando esse ambiente de desenvolvimento, já atendeu aos pré-requisitos.
Observação
Vá para Configurar um ambiente de desenvolvimento para suplementos do SharePoint no Office 365 para descobrir como se inscrever em um Site do Desenvolvedor e começar a usar o Napa.
Se você não estiver usando Napa em um Site do desenvolvedor, será necessário o seguinte:
SharePoint com Meu Site configurado e com um site pessoal criado para o usuário atual
Visual Studio 2012 e Office Developer Tools para Visual Studio 2013
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
Para obter diretrizes sobre como configurar um ambiente de desenvolvimento que atenda às suas necessidades, consulte Iniciar a criação de aplicativos para Office e SharePoint.
Conceitos principais para saber sobre como trabalhar com feeds sociais do SharePoint
O aplicativo hospedado no SharePoint que você criar neste artigo usa JavaScript para criar e enviar solicitações HTTP aos pontos de extremidade de transferência de estado representacional (REST). Essas solicitações publicar uma postagem e obtém o pessoal feed para o usuário atual. Tabela 1 contém links para artigos que descrevem os conceitos gerais, que você deve compreender antes de começar.
Tabela 1. Conceitos principais para trabalhar com feeds sociais do SharePoint
Título do artigo | Descrição |
---|---|
Suplementos do SharePoint |
Saiba mais sobre Suplementos do SharePoint e conceitos fundamentais para criá-las. |
Introdução ao desenvolvimento de recursos sociais no SharePoint |
Descubra como iniciar a programação 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 projeto de Suplemento do SharePoint
Em seu Site do desenvolvedor, abra Napa e escolha Adicionar novo projeto.
Escolha o modelo de aplicativo para o SharePoint, nomeie o projeto SocialFeedRESTe, em seguida, clique no botão criar.
Especifique as permissões que precisa de seu aplicativo:
a. Escolha o botão Propriedades na parte inferior da página.
b. Na janela Propriedades, escolha as permissões.
c. Na categoria de conteúdo, defina permissões de Write para o escopo de locatário.
d. Na categoria Social, defina permissões de Read para o escopo de Perfis de usuário.
e. Feche a janela Propriedades.
- Expanda o nó de Scripts, escolha o arquivo App.js e exclua o conteúdo do arquivo.
Postar no feed social usando o serviço REST do SharePoint
- No arquivo App.js, declare uma variável global para a URL do ponto de extremidade SocialFeedManager.
var feedManagerEndpoint;
- Adicione o código a seguir, que obtém o parâmetro SPAppWebUrl da cadeia de consulta e o utiliza para criar o ponto de extremidade de SocialFeedManager.
$(document).ready(function () {
var appweburl;
var params = document.URL.split("?")[1].split("&");
for (var i = 0; i < params.length; i = i + 1) {
var param = params[i].split("=");
if (param[0] === "SPAppWebUrl") appweburl = param[1];
}
feedManagerEndpoint = decodeURIComponent(appweburl) + "/_api/social.feed";
postToMyFeed();
});
Adicione o código a seguir, que cria a solicitação de POST HTTP para o ponto de extremidade
/my/Feed/Post
, define a data de criação da postagem e publica a postagem.A solicitação envia um recurso SocialRestPostCreationData no corpo da solicitação. SocialRestPostCreationData contém o destino referente à postagem (no caso,
null
para especificar uma postagem de raiz para o usuário atual) e um tipo complexo SocialPostCreationData que define as propriedades da postagem.
function postToMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed/Post",
type: "POST",
data: JSON.stringify( {
'restCreationData':{
'__metadata':{
'type':'SP.Social.SocialRestPostCreationData'
},
'ID':null,
'creationData':{
'__metadata':{
'type':'SP.Social.SocialPostCreationData'
},
'ContentText':'This post was published using REST.',
'UpdateStatusText':false
}
}
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type":"application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: getMyFeed,
error: function (xhr, ajaxOptions, thrownError) {
alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
Recuperar o feed social do usuário atual usando o serviço REST do SharePoint
Adicione o código a seguir, que obtém Personal feed de tipo para o usuário atual usando o ponto de extremidade /my/Feed
. O cabeçalho accept solicita que o servidor retornar uma representação de JavaScript Object Notation (JSON) do feed em sua resposta.
function getMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed",
headers: {
"accept": "application/json;odata=verbose"
},
success: feedRetrieved,
error: function (xhr, ajaxOptions, thrownError) {
alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
Iterar por meio do feed social e lê-lo usando o serviço REST do SharePoint
Adicione o código a seguir, que prepara os dados retornados, usando a função JSON.stringify e a função JSON.parse e, em seguida, itera através do feed e obtém o proprietário do segmento e o texto da postagem raiz.
function feedRetrieved(data) {
var stringData = JSON.stringify(data);
var jsonObject = JSON.parse(stringData);
var feed = jsonObject.d.SocialFeed.Threads;
var threads = feed.results;
var feedContent = "";
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var participants = thread.Actors;
var owner = participants.results[thread.OwnerIndex].Name;
feedContent += '<p>' + owner +
' said "' + thread.RootPost.Text + '"</p>';
}
$("#message").html(feedContent);
}
Execute o aplicativo para SharePoint no Site do desenvolvedor
Para executar o aplicativo, escolha o botão Executar projeto na parte inferior da página.
Na página você confia que é aberta, escolha o botão Confiança-lo. A página de app abre e exibe o nome do proprietário e o texto de cada post raiz no feed.
Exemplo de código: publicar uma postagem e obter o feed para o usuário atual usando o serviço REST do SharePoint
Este é o exemplo de código completo para o arquivo App.js. Ele publica uma postagem e obtém pessoal feed para o usuário atual, que é retornado como um objeto JSON. Em seguida, itera o feed.
var feedManagerEndpoint;
// Get the SPAppWebUrl parameter from the query string and build
// the feed manager endpoint.
$(document).ready(function () {
var appweburl;
var params = document.URL.split("?")[1].split("&");
for (var i = 0; i < params.length; i = i + 1) {
var param = params[i].split("=");
if (param[0] === "SPAppWebUrl") appweburl = param[1];
}
feedManagerEndpoint = decodeURIComponent(appweburl)+ "/_api/social.feed";
postToMyFeed();
});
// Publish a post to the current user's feed by using the
// "<app web URL>/_api/social.feed/my/Feed/Post" endpoint.
function postToMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed/Post",
type: "POST",
data: JSON.stringify( {
'restCreationData':{
'__metadata':{
'type':'SP.Social.SocialRestPostCreationData'
},
'ID':null,
'creationData':{
'__metadata':{
'type':'SP.Social.SocialPostCreationData'
},
'ContentText':'This post was published using REST.',
'UpdateStatusText':false
}
}
}),
headers: {
"accept": "application/json;odata=verbose",
"content-type":"application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: getMyFeed,
error: function (xhr, ajaxOptions, thrownError) {
alert("POST error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
// Get the current user's feed by using the
// "<app web URL>/_api/social.feed/my/Feed" endpoint.
function getMyFeed() {
$.ajax( {
url: feedManagerEndpoint + "/my/Feed",
headers: {
"accept": "application/json;odata=verbose"
},
success: feedRetrieved,
error: function (xhr, ajaxOptions, thrownError) {
alert("GET error:\\n" + xhr.status + "\\n" + thrownError);
}
});
}
// Parse the JSON data and iterate through the feed.
function feedRetrieved(data) {
var stringData = JSON.stringify(data);
var jsonObject = JSON.parse(stringData);
var feed = jsonObject.d.SocialFeed.Threads;
var threads = feed.results;
var feedContent = "";
for (var i = 0; i < threads.length; i++) {
var thread = threads[i];
var participants = thread.Actors;
var owner = participants.results[thread.OwnerIndex].Name;
feedContent += '<p>' + owner +
' said "' + thread.RootPost.Text + '"</p>';
}
$("#message").html(feedContent);
}
Próximas etapas
Consulte Referência de API REST do feed social para SharePoint e Seguindo pessoas e referência de API REST de conteúdo para SharePoint para outros pontos de extremidade REST que você pode usar para acessar recursos sociais.