Compartir a través de


Leer y escribir en la fuente social usando el servicio REST en SharePoint

Crear una aplicación alojada en SharePoint que utilice el servicio REST para publicar un post y obtener la fuente personal del usuario actual.

Requisitos previos para crear un complemento de SharePoint hospedado en SharePoint que publica una publicación y obtiene la fuente social mediante el servicio REST de SharePoint

En este artículo se presupone que crea las Complemento de SharePoint con Napa en un sitio para desarrolladores de Office 365. Si está usando este entorno de desarrollo, ya cumple los requisitos previos.

Nota:

Vaya a Configuración de un entorno de desarrollo para complementos de SharePoint en Office 365 para averiguar cómo registrarse en un sitio para desarrolladores y empezar a usar Napa.

Si no usa Napa en un sitio para desarrolladores, necesitará:

  • SharePoint con Mi sitio configurado y con un sitio personal creado para el usuario actual

  • Visual Studio 2012 y Office Developer Tools para Visual Studio 2013

  • Permisos de acceso Control total sobre la aplicación de servicio Perfil de usuario para el usuario que ha iniciado sesión

Nota:

Para obtener instrucciones sobre cómo configurar un entorno de desarrollo que se adapte a sus necesidades, consulte Inicio de la creación de aplicaciones para Office y SharePoint.

Conceptos básicos para saber sobre cómo trabajar con fuentes sociales de SharePoint

La aplicación hospedada en SharePoint que cree en este artículo usa JavaScript para crear y enviar solicitudes HTTP a los extremos de Representational State Transfer (REST). Estas solicitudes publicación una entrada de blog y obtener la fuente personal para el usuario actual. La tabla 1 contiene vínculos a artículos que describen los conceptos generales que debe comprender antes de empezar.

Tabla 1. Conceptos básicos para trabajar con fuentes sociales de SharePoint

Título del artículo Descripción
Complementos de SharePoint
Obtenga información sobre conceptos fundamentales para crearlas y Complementos de SharePoint.
Comience a desarrollar con características sociales en SharePoint
Descubra cómo empezar a programar con fuentes sociales y publicaciones de microblog, seguir a personas y contenido (documentos, sitios y tags.md) y trabajar con perfiles de usuario.
Trabajar con fuentes sociales en SharePoint
Obtenga información sobre tareas de programación comunes para trabajar con fuentes sociales y la API que se usan para realizar las tareas.

Crear el proyecto de complemento de SharePoint

  1. En el sitio para desarrolladores, abra Napa y, a continuación, elija Agregar nuevo proyecto.

  2. Elija la plantilla aplicación para SharePoint, asigne al proyecto el SocialFeedRESTy, a continuación, elija el botón crear.

  3. Especifique los permisos que necesita la aplicación:

a. Elija el botón de Propiedades en la parte inferior de la página.

b. En la ventana Propiedades, elija permisos.

c. En la categoría del contenido, establezca los permisos de Write para el ámbito de inquilino.

d. En la categoría Social, establezca los permisos de Read para el ámbito de Los perfiles de usuario.

e. Cierre la ventana de Propiedades.

  1. Expanda el nodo de secuencias de comandos, elija el archivo default.aspx y elimine el contenido del archivo.

Publicación en la fuente social mediante el servicio REST de SharePoint

  1. En el archivo App.js, declare una variable global para la dirección URL del extremo SocialFeedManager.
var feedManagerEndpoint;
  1. Agregue el código siguiente, que obtiene el parámetro SPAppWebUrl de la cadena de consulta y se utiliza para crear el extremo 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. Agregue el siguiente código, que se basa la solicitud de POST HTTP para el extremo de /my/Feed/Post , define los datos de creación de la publicación y publica la entrada.

    La solicitud envía un recurso de SocialRestPostCreationData en el cuerpo de solicitud. SocialRestPostCreationData contiene el destino de la entrada de blog (en este caso, null para especificar una entrada raíz para el usuario actual) y un tipo complejo SocialPostCreationData que define las propiedades de la publicación.

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

Recuperación de la fuente social para el usuario actual mediante el servicio REST de SharePoint

Agregue el siguiente código, que obtiene el Personal tipo para el usuario actual de fuente utilizando el extremo /my/Feed . El encabezado accept solicita que el servidor devuelva una representación de Notación de objetos de JavaScript (JSON) de la fuente en su respuesta.


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

Iteración a través de la fuente social y lectura desde ella mediante el servicio REST de SharePoint

Agregue el siguiente código, que prepara los datos devueltos mediante el uso de la función JSON.stringify y la función JSON.parse y, a continuación, itera a través de la fuente y obtiene el texto de la entrada raíz y propietario del subproceso.


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

Ejecutar la aplicación para SharePoint en el sitio para desarrolladores

  1. Para ejecutar la aplicación, elija el botón Ejecutar proyecto en la parte inferior de la página.

  2. En la página ¿confía en que se abre, elija el botón Confianza. La página de aplicación se abre y muestra el nombre del propietario y el texto de cada entrada de raíz de la fuente.

Ejemplo de código: Publicar una publicación y obtener la fuente para el usuario actual mediante el servicio REST de SharePoint

El siguiente es el ejemplo de código completo para el archivo App.js. Publica una entrada de blog y obtiene la fuente personal para el usuario actual, que se devuelve como un objeto JSON. A continuación, recorre la fuente.


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

Pasos siguientes

Consulte Social feed REST API reference for SharePoint and Following people and content REST API reference for SharePoint for other REST endpoints that you can use to access social features.

Vea también