Freigeben über


Lesen und Schreiben in den Feed für soziale Netzwerke mithilfe des REST-Diensts in SharePoint

Erstellen Sie eine von SharePoint gehostete App, die den REST-Dienst zum Veröffentlichen eines Beitrags und zum Abrufen des persönlichen Feeds für den aktuellen Benutzer verwendet.

Voraussetzungen für das Erstellen einer SharePoint-Hosting SharePoint-Add-In, die einen Beitrag veröffentlicht und ruft den Feed für soziale Netzwerke mithilfe des REST-Diensts SharePoint

In diesem Artikel wird davon ausgegangen, dass Sie die SharePoint-Add-In mithilfe einer Napa- oder Office 365-Entwicklerwebsite erstellen. Wenn Sie diese Entwicklungsumgebung verwenden, erfüllen Sie bereits die Voraussetzungen.

Hinweis

Wechseln Sie zu Einrichten einer Entwicklungsumgebung für SharePoint-Add-Ins auf Office 365, um herauszufinden, wie Sie sich für eine Entwicklerwebsite registrieren und mit der Verwendung von Napa beginnen.

Wenn Sie nicht mit Napa auf einer Entwicklerwebsite arbeiten, benötigen Sie Folgendes:

  • SharePoint mit Meine Website konfiguriert und mit einer persönlichen Website für den aktuellen Benutzer erstellt

  • Visual Studio 2012 und Office Developer Tools für Visual Studio 2013

  • Vollzugriff auf die Benutzerprofildienst-Anwendung für den angemeldeten Benutzer

Hinweis

Eine Anleitung zum Einrichten einer Entwicklungsumgebung, die Ihren Anforderungen entspricht, finden Sie unter Starten der Erstellung von Apps für Office und SharePoint.

Kernkonzepte zum Arbeiten mit sozialen Feeds in SharePoint

Die SharePoint-hosted app, die Sie in diesem Artikel erstellen verwendet JavaScript zu erstellen und Senden von HTTP-Anfragen an Endpunkten Representational State Transfer (REST). Diese Anfragen einen Beitrag veröffentlichen und Personal-feed für den aktuellen Benutzer abzurufen. Tabelle 1 enthält Links zu Artikeln, in denen allgemeine Konzepte zu, die Sie kennen sollten beschreiben, bevor Sie beginnen.

Tabelle 1. Kernkonzepte für die Arbeit mit sozialen SharePoint-Feeds

Titel des Artikels Beschreibung
SharePoint-Add-Ins
Informationen Sie zu SharePoint-Add-Ins und grundlegende Konzepte für deren Erstellung.
Erste Schritte bei der Entwicklung mit thematischen Features in SharePoint
Erfahren Sie, wie Sie die Programmierung mit sozialen Feeds und Microblog Beiträge, folgen von Personen und Inhalten (Dokumente, Websites und tags.md), und Arbeiten mit Benutzerprofilen zu starten.
Arbeiten mit sozialen Feeds in SharePoint
Informationen Sie zu allgemeinen Programmieraufgaben zum Arbeiten mit sozialen Feeds und die API, die Sie zum Ausführen der Aufgaben verwenden.

Erstellen des SharePoint-Add-In-Projekts

  1. Klicken Sie auf Ihrer Entwicklerwebsite öffnen Sie Napa, und wählen Sie dann auf Neues Projekt hinzufügen.

  2. Wählen Sie die Vorlage App für SharePoint, nennen Sie das Projekt SocialFeedREST, und wählen Sie dann auf die Schaltfläche Erstellen.

  3. Geben Sie die Berechtigungen an, die Ihre App benötigt:

a. Wählen Sie die Schaltfläche Eigenschaften am unteren Rand der Seite.

b. Wählen Sie im Fenster EigenschaftenBerechtigungen.

c. Legen Sie die InhaltskategorieWrite Berechtigungen für den Mandanten Bereich.

d. Legen Sie in der Kategorie für soziale NetzwerkeRead-Berechtigungen für den Bereich Von Benutzerprofilen.

e. Das Fenster Eigenschaften zu schließen.

  1. Erweitern Sie den Knoten Skripts, wählen Sie die Datei App.js, und löschen Sie den Inhalt der Datei.

Veröffentlichen Sie den Feed für soziale Netzwerke mithilfe der SharePoint REST-Dienst

  1. Deklarieren Sie eine globale Variable für die URL des Endpunkts SocialFeedManager, in der Datei App.js.
var feedManagerEndpoint;
  1. Fügen Sie den folgenden Code, die Ruft den SPAppWebUrl -Parameter aus der Abfragezeichenfolge ab und wird verwendet, um den SocialFeedManager -Endpunkt zu erstellen.
  $(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. Fügen Sie den folgenden Code, in dem die POST HTTP-Anforderung für den Endpunkt /my/Feed/Post erstellt, definiert die Bereitstellungsdaten Erstellung und im Beitrag veröffentlicht.

    Die Anforderung sendet eine SocialRestPostCreationData-Ressource im Anforderungstext. SocialRestPostCreationData enthält das Ziel für den Beitrag (in diesem Fall, null um einen Stammbeitrag für den aktuellen Benutzer anzugeben) und einen komplexen SocialPostCreationData-Typ , der die Eigenschaften des Beitrags definiert.

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

Abrufen von den Feed für soziale Netzwerke für den aktuellen Benutzer mithilfe des REST-Diensts SharePoint

Fügen Sie den folgenden Code hinzu, der den Persönlichen Feedtyp für den aktuellen Benutzer mithilfe des /my/Feed Endpunkts abruft. Der Accept-Header fordert an, dass der Server eine JSON-Darstellung (JavaScript Object Notation) des Feeds in seiner Antwort zurückgibt.


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

Durchlaufen Sie die Nutzung von sozialen Netzwerken feed und daraus mithilfe des REST-Diensts SharePoint lesen

Fügen Sie den folgenden Code, das bereitet der zurückgegebenen Daten mithilfe der JSON.stringify und die Funktion JSON.parse und dann den Feed durchläuft und dient zum Abrufen der Thread Besitzer und die Stamm-Post-Text.


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

Ausführen der app für SharePoint auf der Entwicklerwebsite für

  1. Um die app ausgeführt werden soll, wählen Sie die Schaltfläche " Projekt ausführen " am unteren Rand der Seite.

  2. Wählen Sie die Schaltfläche Vertrauen sieVertrauen Sie Sie auf der Seite, die geöffnet wird. Die App-Seite wird geöffnet und zeigt den Namen des Besitzers und den Text jedes Stammbeitrags im Feed an.

Codebeispiel: Veröffentlichen einer POST-Anforderung und den Feed für den aktuellen Benutzer mithilfe des REST-Diensts SharePoint abrufen

Es folgt das vollständige Codebeispiel für die App.js-Datei. Es veröffentlicht einen Beitrag und ruft den persönlichen Feed für den aktuellen Benutzer ab, der als JSON-Objekt zurückgegeben wird. Anschließend wird der Feed durchlaufen.


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

Nächste Schritte

Weitere REST-Endpunkte, die Sie für den Zugriff auf Features für soziale Netzwerke verwenden können, finden Sie unter Rest-API-Referenz für soziale Netzwerke für SharePoint und Folgen von Personen und Inhalten für SharePoint .

Siehe auch