Partilhar via


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

  1. Em seu Site do desenvolvedor, abra Napa e escolha Adicionar novo projeto.

  2. Escolha o modelo de aplicativo para o SharePoint, nomeie o projeto SocialFeedRESTe, em seguida, clique no botão criar.

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

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

  1. No arquivo App.js, declare uma variável global para a URL do ponto de extremidade SocialFeedManager.
var feedManagerEndpoint;
  1. 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();
});
  1. 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

  1. Para executar o aplicativo, escolha o botão Executar projeto na parte inferior da página.

  2. 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("&amp;");
    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.

Confira também