Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

SharePoint 2013 - Newsfeed Einträge mit PowerShell

Mit Sicherheit eines der auf­re­gends­ten neuen Features im SharePoint 2013 ist der Newsfeed oder auch Aktivitätenstrom genannt. Endlich soziale Kommunikation im SharePoint! Neben Statusmeldungen erschei­nen auch Aktivitäten wie das Folgen von Sites und ande­ren SharePoint Objekten im Newsfeed.

Den Entwickler sollte es freuen – Denn der SharePoint Newsfeed lässt sich pro­gram­ma­tisch erstel­len und lässt auch Interaktionen mit ihm zu. So kön­nen bei­spiels­weise Apps und Webparts Einträge im Newsfeed ver­öf­fent­li­chen (bsp. Statusnachrichten) oder dar­auf zugrei­fen. Ein schö­nes Beispiel dafür ist das Microsoft Projekt Kudos, mit dem sich Badges für Leistungen ver­ge­ben las­sen.
Übrigens: Ein ähn­li­ches Projekt, zur Vergabe von Badges in Confluence , haben wir im März ver­öf­fent­licht -> Karma ür Confluence

Für das Ansprechen des Newsfeed ste­hen fol­gende Möglichkeiten zur Verfügung:

  • Server Object Model C#
  • Client Object Model C#
  • Client Object Model JavaScript

SharePoint NewsfeedEin denk­ba­res Szenario für die Verwendung des Newsfeeds, vor allem auch des Newsfeed einer Projektseite, ist die Ankündigung von wich­ti­gen Informationen oder Wartungsfenstern. Da sol­che Ankündigungen in der Regel vom geneig­ten Firmenadministrator ver­kün­det wer­den, ist Visual Studio hier nicht die rich­tige Lösung. "Richtige" Administratoren arbei­ten nun mal mit der PowerShell.

Mittels PowerShell könn­ten bei­spiels­weise alle SharePoint Räume einer Webanwendung ermit­telt und anschlie­ßend eine Ankündigung in diese geschrie­ben wer­den. Wie so etwas funk­tio­niert, soll der nach­fol­gende Beispiel Quellcode für PowerShell ver­deut­li­chen.

Add-PsSnapin Microsoft.SharePoint.PowerShell

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.UserProfiles")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.Social")

$siteurl = "http://newsfeedSeite"
$siteNewsFeed = "$siteurl/newsfeed.aspx"

$site = Get-SPSite -Identity $siteurl -ErrorAction Stop
$context = Get-SPServiceContext $site

$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$profile = $upm.GetProfile($true)

$feedManager = New-Object Microsoft.Office.Server.Social.SPSocialFeedManager($profile,$context)

$data = New-Object Microsoft.Office.Server.Social.SPSocialPostCreationData
$data.ContentText = "Herzlich Willkommen im Newsfeed der Projektseite"

$feedManager.CreatePost($siteNewsFeed,$data)

Was gibt es dabei zu beachten?

Nachrichten gezielt in einem Site – Newsfeed veröffentlichen

Für das Absenden der Nachricht mit­tels $feedManager.CreatePost muss fol­gen­des beach­tet wer­den: Der erste Parameter der Methode steu­ert in wel­chem Newsfeed die Nachricht ver­öf­fent­licht wird. Wird für die­sen Parameter $null ein­ge­setzt, lan­det der Post im per­sön­li­chen Newsfeed auf der MySite. Soll die Nachricht in den Newsfeed einer Webseite geschickt wer­den, muss hier zwin­gend die Adresse der Seite newsfeed.aspx mit ange­ge­ben wer­den (Im Beispiel: $siteNewsFeed)

Welche Elemente und Interaktionen können verwendet werden?

Prinzipiell kön­nen alle Interaktionen mit­tels PowerShell und Quellcode durch­ge­führt wer­den, so wie sie auch in der Oberfläche ange­bo­ten wer­den.

  • Attachments
  • Links
  • Like
Kann auf Newsfeed – Nachrichten geantwortet werden?

Ja! Dazu muss ledig­lich beim Methodenaufruf "CreatePost" die RootPost Id mit über­ge­ben wer­den. Mittels die­ser kann sich die Nachricht dann im Thread ein­ord­nen. Die RootPost Id ist Bestandteil des Rückgabewertes von CreatePost. Wurde die Nachricht nicht selbst erstellt, muss das ent­spre­chende Nachrichten Objekt vor­her ermit­telt wer­den.

Ich bin der Meinung, dass der SharePoint Newsfeed sehr viel Potential besitzt, wel­ches nur rich­tig ein­ge­setzt wer­den muss. Paradebeispiel ist die oben gezeigte Verwendung für Ankündigungen in einem Projekt oder für Wartungsarbeiten. Bleibt abzu­war­ten wie Microsoft den Newsfeed wei­ter­ent­wi­ckeln wird bzw. wie die Interaktion mit dem neuen Yammer Newsfeed noch mög­lich sein wird.

Related Posts

Pin It on Pinterest