Office 365 Office Graph Explorer


Seit kurzem kann in Office 365 Tenants der sog. “Office Graph” aktiviert werden. Dieser ist derzeit als Preview in den Plänen Enterprise (Academic, Governmental) E1 bis E4 enthalten. Martina hat im TechNet Blog Delve und der Office Graph über die Aktivierung und die Details geschrieben. Hier ein kurzer Überblick, was der Office Graph ist.

About Delve and Office Graph

Für Developer ist natürlich interessant, wie man den Office Graph selbst anzapfen und verwenden kann. Apropos, der Begriff “Delve” (das Webportal in Office 365) steht für “vertiefen”, die Bezeichnung “Office Graph” (das Service, das Informationen sammelt, verknüpft und bereitstellt) hat Microsoft wahrscheinlich in Anlehnung an andere Systeme gewählt. Facebook App-Developer kennen etwa die “Facebook Graph-API”, die nach erfolgter Authentifizierung einer bekannten App genauso Informationen über Mitglieder liefert.

Ein Unternehmens-Service

Beim Office Graph handelt es sich allerdings um ein Service für Unternehmen, schließlich indiziert es Daten aus verschiedenen Office 365 Datenquellen und liefert (derzeit) vor allem aktuelle Dokumente. Die Idee dahinter ist, dass Informationen die Benutzer finden, anstatt umgekehrt, beschreibt Office 365 Product Managerin Julia White in A milestone for Office Delve.

Hier sind wir schon bei den Office 365 Datenquellen angelangt: Derzeit werden Inhalte aus OneDrive for Business und SharePoint Online indiziert, in Kürze sollen E-Mail (Exchange Online), E-Mail-Anlagen, OneNote, Yammer und Lync folgen.

Graph Query Language

Die Open Graph Schnittstelle kann über die sog. Graph Query Language (GQL) über eine SharePoint Online Search REST API verwendet werden. Mit GQL können also Abfragen für einen Office 365 Benutzer abgefragt werden, siehe MSDN: Using GQL with the SharePoint Online Search REST API to query Office graph.

Die Grafik zeigt die (vereinfachte) Suche in Delve und dem Office Graph:

AAA1

Bildquelle: MSDN

Eine GQL-Abfrage sieht dann beispielsweise so aus:

https://<tenant-domain>/_api/search/query?Querytext='*'&Properties='GraphQuery:actor123456789\,action\:1033)'&RowLimit=50&SelectProperties='DocId,Titl'

Über den Parameter Querytext wird der Content übergeben, '*' steht für keinen Filter. Querytext ist verpflichtend. In den Properties wird spezifiziert, für welchen Benutzer (Actor) die Abfrage erfolgt. Dabei muss die Actor-ID übergeben werden. Als Ergebnis erhält man alle Aktionen, die dem Filter entsprechen. Der Actor-Parameter besitzt diese Parameter: ACTOR(<ActorId> [, filter]).

Alle Infos zur Verwendung der GQL findet ihr hier: MSDN: Using GQL....

Office Graph Explorer SharePoint-App

Natürlich benötigt man eine Authentifizierung bevor man Abfragen gegen den Office Graph durchführen kann. Dazu eignet sich etwa eine SharePoint App. Was man alles in SharePoint abfragen kann, darüber informiert u.a. MSDN: SharePoint Search REST API overview .

Vor kurzem habe ich ein schönes visualisiertes Office Graph Demo von Richard di Zerega gefunden. Dieses ist auf Richards´ GitHub zu finden und heißt OfficeGraphExplorer. Dieses Sample kann sehr gut dazu verwendet werden, sich die Funktionsweise des Office Graph anzusehen.

Nach dem Download muss die fertige Lösung nur gegen eine SharePoint Online Site deployt werden. In den Properties der Solution wird eine Office 365 SPO-Site angegeben.

B1

Danach erfolgt die Authentifizierung für den Deployment-Vorgang.

Der ganze Code spielt sich in Default.aspx ab. Es ist eine fesche One-Page SharePoint-App, ganz in Javascript mit etwas jQuery und d3 (Data-Driven Documents) geschrieben. Nach dem Deployment folgt die Abfrage, ob der App vertraut wird (JA). Danach beginnt die SPO-App Daten für den aktuell angemeldeten User aus dem Open Graph abzufragen.

B2

Das Ergebnis kann sich sehen lassen: Ein Baum zeigt in der Mitte den Benutzer und ordnet rundherum seine letzten (aktuellen) Dokumente an. Die Dokumente können per Link geöffnet werden. Genauso können auch Benutzer ausgewählt werden und dann Infos über den Benutzer abgefragt werden. Der Baum kann auch interaktiv bewegt werden – eine nette Spielerei. Rechts können einige Query Options eingestellt werden.

Die Analyse des Codes ist bei diesem kleinen Projekt noch übersichtlich. So wird etwa beim Maus Click Event auf ein Actor-Objekt die loadUser() Function mit dem jeweiligen Actor aufgerufen.

A1

Hier wird dann je nach Aktion die Variable objectGQL mit einem Teil-GQL befüllt und schließlich mit der URL der AppWebUrl (es funktioniert auch mit der HostWebUrl) als Ajax-Call wie oben zusammengebaut und abgesetzt. Wenn der Call ein Ergebnis (success) zurückliefert, wird dieses in einer foreach Function durchlaufen und alle “Kinder” in das Ergebnis-Array ge-pusht, usw.

A2

Der Rest ist eine sehr hübsche Visualisierung, aber die Datenbeschaffung funktioniert grundsätzlich recht einfach.

Links

Hier findet ihr verschiedene Ressourcen zum Vertiefen:

Viel Spaß beim Ansehen und Testen von Delve und eigenen Apps mit dem Office Graph in Office 365!


Skip to main content