Freigeben über


Lesen und Schreiben in den Feed für soziale Netzwerke mithilfe des .NET-Clientobjektmodells in SharePoint

Erstellen Sie eine Konsolenanwendung, die den sozialen Feed mithilfe des .NET-Clientobjektmodells in SharePoint liest bzw. in den sozialen Feed schreibt.

Voraussetzungen für das Erstellen einer Konsolenanwendung, die Lese- und Schreibvorgänge auf den Feed für soziale Netzwerke mithilfe des Clientobjektmodells für SharePoint.NET

Die Konsolenanwendung, die Sie erstellen, einen Zielbenutzer Feed abruft und druckt den Stamm-Post von jedem Thread in einer nummerierten Liste. Klicken Sie dann veröffentlicht eine einfache Text-Antwort an den ausgewählten Thread. Die gleiche-Methode ( CreatePost ) wird verwendet, um beide Beiträge veröffentlichen und Antworten Sie den Feed.

Zum Erstellen der Konsolenanwendung benötigen Sie Folgendes:

  • SharePoint mit konfigurierter „Meine Website“, mit erstellten persönlichen Websites für den aktuellen Benutzer und einen Zielbenutzer sowie mit einigen vom Zielbenutzer erstellten Beiträgen
  • Visual Studio 2012
  • Vollzugriff auf die Benutzerprofildienst-Anwendung für den angemeldeten Benutzer

Hinweis

Wenn Sie nicht auf dem Computer entwickeln, auf dem SharePoint ausgeführt wird, rufen Sie den Download der SharePoint-Clientkomponenten ab, der SharePoint-Clientassemblys enthält.

Kernkonzepte zum Arbeiten mit sozialen Feeds in SharePoint

Tabelle 1 enthält Links zu Artikeln, in denen wichtige Kernkonzepte zu, die Sie kennen sollten beschreiben, bevor Sie beginnen.

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

Titel des Artikels Beschreibung
Erste Schritte bei der Entwicklung mit thematischen Features in SharePoint Hier erhalten Sie Hilfe zu den ersten Schritten beim Programmieren mit sozialen Feeds und Mikroblogbeiträgen, beim Folgen von Personen und Inhalten (Dokumente, Websites und Tags) sowie beim Arbeiten mit Benutzerprofilen.
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 Sie die Konsolenanwendung in Visual Studio 2012, und fügen Sie Verweise auf Clientassemblys

  1. Öffnen Sie auf Ihrem Entwicklungscomputer Visual Studio 2012.

  2. Klicken Sie in der Menüleiste auf Datei, Neu, Projekt. . Wählen Sie im Dialogfeld Neues Projekt in der Dropdownliste oben im Dialogfeld .NET Framework 4.5 aus.

  3. Wählen Sie Windows, und wählen Sie dann die Vorlage Konsolenanwendung, aus der Liste Vorlagen.

  4. Nennen Sie das Projekt ReadWriteMySite, und wählen Sie dann auf die Schaltfläche OK.

  5. Fügen Sie Verweise auf die Clientassemblys wie folgt:

    1. Öffnen Sie im Projektmappen-Explorer das Kontextmenü für das Projekt ReadWriteMySite, und wählen Sie dann auf Verweis hinzufügen.

    2. Wählen Sie im Dialogfeld Verweis-Manager die folgenden Assemblys aus:

      • Microsoft.SharePoint.Client
      • Microsoft.SharePoint.Client.Runtime
      • Microsoft.SharePoint.Client.UserProfiles

      Wenn Sie auf dem Computer entwickeln, auf dem SharePoint ausgeführt wird, befinden sich die Assemblys in der Kategorie Erweiterungen. Andernfalls wechseln Sie zu dem Speicherort, der die heruntergeladenen Clientassemblys enthält (siehe SharePoint-Clientkomponenten).

  6. Fügen Sie in der Datei Program.cs die folgenden using Anweisungen hinzu.

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Social;

Abrufen von den Feed für soziale Netzwerke für einen Zielbenutzer mithilfe des Clientobjektmodells für SharePoint.NET

  1. Deklarieren Sie Variablen für die URL des Servers, und statten Sie Anmeldeinformationen des Benutzers.

    const string serverUrl = "http://serverName/";
    const string targetUser = "domainName\\userName";
    

    Hinweis

    Denken Sie daran, die http://serverName/ Platzhalterwerte und domainName\\userName zu ersetzen, bevor Sie den Code ausführen.

  2. Initialisieren Sie in der Main() -Methode den SharePoint-Clientkontext.

    ClientContext clientContext = new ClientContext(serverUrl);
    
  3. Erstellen Sie die SocialFeedManager-Instanz .

    SocialFeedManager feedManager = new SocialFeedManager(clientContext);
    
  4. Geben Sie die Parameter für den feed Inhalt, den Sie abrufen möchten.

    SocialFeedOptions feedOptions = new SocialFeedOptions();
    feedOptions.MaxThreadCount = 10;
    

    Die Standardoptionen zurückgeben die ersten 20 Threads im Feed, sortiert nach Datum der letzten Änderung.

  5. Rufen Sie den Feed des Zielbenutzers ab.

    ClientResult<SocialFeed> feed = feedManager.GetFeedFor(targetUser, feedOptions);
    clientContext.ExecuteQuery();
    

    GetFeedFor gibt ein ClientResult<T> Objekt zurück, das die Auflistung von Threads in seiner Value-Eigenschaft speichert.

Durchlaufen und Lesen des sozialen Feeds mithilfe des SharePoint .NET-Clientobjektmodells

Der folgende Code durchläuft die Threads im Feed. Es überprüft, ob jeder Thread über das CanReply-Attribut verfügt, und ruft dann den Threadbezeichner und den Text des Stammbeitrags ab. Der Code auch ein Wörterbuch, das die Thread-ID zu speichern (zu einem Thread Antworten) erstellt und schreibt den Text des Beitrags Stamm in der Konsole angezeigt.

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

Bereitstellen Sie eine Antwort auf den Feed für soziale Netzwerke, mit dem .NET SharePoint-Objektmodell

  1. (UI-bezogene nur) Rufen Sie den Thread Antworten zu und Aufforderung für Antwort des Benutzers.

    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:  ");
    
  2. Definieren Sie die Antwort. Der folgende Code Ruft die Antwort Text aus der Konsolenanwendung ab.

    SocialPostCreationData postCreationData = new SocialPostCreationData();
    postCreationData.ContentText = Console.ReadLine();
    
  3. Veröffentlichen Sie die Antwort. Der threadToReplyTo-Parameter stellt die Id-Eigenschaft des Threads dar.

    feedManager.CreatePost(threadToReplyTo, postCreationData);
    clientContext.ExecuteQuery();
    

    Hinweis

    Die CreatePost-Methode wird auch verwendet, um einen Stammbeitrag im Feed des aktuellen Benutzers zu veröffentlichen, indem null für den ersten Parameter übergeben wird.

  4. (UI-bezogene nur) Das Programm zu beenden.

    Console.WriteLine("Your reply was published.");
    Console.ReadKey(false);
    
  5. Wählen Sie zum Testen der Konsolenanwendung, klicken Sie auf der Menüleiste Debuggen, Debuggen starten aus.

Codebeispiel: Abrufen ein Feeds und Antworten auf einen Beitrag mithilfe des Clientobjektmodells für SharePoint.NET

Im folgende Beispiel wird der vollständige Code aus der Datei Program.cs.

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

Nächste Schritte

Weitere Informationen zum mehr Aufgaben lesen und Schreiben von Aufgaben mit den Feed für soziale Netzwerke mithilfe des Clientobjektmodells .NET aus, lesen Sie Folgendes ein:

Siehe auch