Cordova-Beispiel-App mit Office 365-Ermittlungsdiensts und Dateien-API

In diesem Thema erfahren Sie, wie Sie einige der neuen APIs in den Clientbibliotheken für Office 365 in einer mithilfe von Visual Studio-Tools für Apache Cordova erstellten App verwenden können.

Office 365-API-Tools für Visual Studio 2013

Wenn Sie versuchen, die Office 365-APIs erstmals in einem Cordova-Anwendungsworkflow zu verwenden, befolgen Sie bitte die Anweisungen in der Dokumentation, um Office 365-API-Tools für Visual Studio Preview zu installieren und um Ihrem Projekt den Dienst hinzuzufügen.

Office 365 stellt REST-basierte APIs bereit, die Entwicklern ermöglichen, auf Office-Ressourcen wie Kalender, Kontakte, E-Mail, Dateien usw. zuzugreifen. Sie können direkt auf REST-APIs programmieren, um mit Office 365 zu interagieren. Wenn Sie jedoch die REST-APIs verwenden, müssen Sie den Code um die Verwaltung der Authentifizierungstoken herum schreiben und verwalten, die richtigen URLs erstellen, die API abfragen, auf die Sie zugreifen möchten, und andere Aufgaben ausführen. Indem Sie Office 365-Clientbibliotheken verwenden, um auf Office 365-APIs und nicht auf REST zuzugreifen, verringern Sie die Komplexität des Codes, den Sie in Ihrer Cordova-Anwendung schreiben müssen.

Das neueste Update für Office 365-API-Tools für Visual Studio Preview bietet Unterstützung für SharePoint-Dateidienste, welche Zugriff auf den MyFiles-Dienst bereitstellen. Neben den SharePoint-Diensten wird die Unterstützung für den Office 365-Ermittlungsdienst bereitgestellt, der dabei hilft, die SharePoint-Dienstendpunkte für den angemeldeten Benutzer zu finden. Diese Dienste können verwendet werden, um einen einfachen Datei-Explorer zu erstellen, der Dateien in OneDrive for Business aufzählt.

Erstellen eines einfachen Datei-Explorers für OneDrive for Business

Das Ziel dieser App besteht darin, in OneDrive for Business gespeicherte Dateien aufzuzählen. Die Quelle für das Beispiel finden Sie unter GitHub.

Cordova_0365_OneDrive

Dn848423.collapse_all(de-de,VS.140).gifErste Schritte

Die folgenden Frameworks und Bibliotheken werden in dieser Anwendung verwendet.

  • Bootstrap, für Layout und Format

  • AngularJS, für Datenbindung mit der Benutzeroberfläche.

  • Office 365-APIs, für die Interaktion mit Office365 zum Aufzählen von OneDrive for Business.

Die in der Demoanwendung verwendeten Dienste zum Abrufen von Dateien aus OneDrive lauten:

  • O365 Discovery Services (Office 365-Ermittlungsdienste), um SharePoint-Dienstendpunkte für den angemeldeten Benutzer zu finden.

  • Files REST operations (REST-Vorgänge für Dateien), um die Datei- und Ordnerinformationen für OneDrive for Business des Benutzers abzurufen.

Dn848423.collapse_all(de-de,VS.140).gifErstellen von Authentifizierungs- und Ermittlungskontexten

Bevor Ihre App auf Office 365-Dienste zugreifen kann, muss die App authentifiziert werden. Das allgemeine Zustimmungsframework in Azure AD verarbeitet die Authentifizierung.

Die Basisobjekte, die Sie benötigen, um Vorgänge mit dem Office 365-Dienst auszuführen, sind die Kontextobjekte. Für die Demo-App sind die folgenden Kontextobjekte erforderlich:

  • Authentifizierungskontext

  • Ermittlungskontext

Der folgende Code erstellt diese Objekte wie folgt:

var authContext = new O365Auth.Context();
var discoveryContext = new O365Discovery.Context();

Das Objekt authContext ermöglicht Ihnen, die erforderlichen ID-Token und Zugriffstoken abzurufen, die zum Abrufen von Benutzerinformationen und zum Aufrufen bestimmter Dienste verwendet werden können.

Das Objekt discoveryContext ermöglicht Ihnen, die Office 365-Dienstfunktionalitäten wie E-Mail oder Kalender oder MyFiles sowie ihre entsprechenden URL-Endpunkte abzurufen.

Sobald Sie über das erforderliche ID-Token verfügen, kann es zum Bestimmen des Benutzers verwendet werden. Das ID-Token ist ein base64-codiertes Webtoken. Sie können dieses Token wie folgt verwenden, um den aktuell angemeldeten Benutzer abzurufen.

authContext.getIdToken("https://outlook.office365.com/").then(
        (function (token) {
    // Can use token.givenName and token.familyName
}).bind(this), function (reason) {
    console.og(reason.message);
});

Das Zugriffstoken ist ein base64 URL-codiertes Webtoken, das für den API-Zugriff verwendet werden kann. Im Folgenden finden Sie, wie Sie das Zugriffstoken abrufen können, das zum Aufrufen von SharePoint-Diensten verwendet wird.

authContext.getAccessTokenFn('Microsoft.SharePoint')

Dn848423.collapse_all(de-de,VS.140).gifVerwenden der Dateien-API

Das SharePoint-Funktionalitätsobjekt für "MyFiles" ermöglicht Ihnen, mit den Dateien und Ordner programmatisch zu arbeiten. Dafür müssen Sie zunächst die Funktionalitätsauflistung abrufen und anschließend nach der Funktionalität "MyFiles" in der zurückgegebenen Auflistung suchen. Verwenden Sie zum Abrufen des Funktionalitätsobjekts den Ermittlungsdienst, indem Sie das Zugriffstoken für Microsoft.SharePoint wie folgt übergeben:

var fileCapability;
discoveryContext.services(authContext.getAccessTokenFn(
    'Microsoft.SharePoint')).then(
    (function (capabilities) {
    // We have the capabilities object. 
    // Enumerate the object to get the capability 
    // for "My Files"
    capabilities.forEach(function (v, i, a) {
        if (v.capability === 'MyFiles') {
            filesCapability = v;
        }
    });
}).bind(this), function (error) {
    // error
});

Sobald Sie über das Funktionalitätsobjekt für "MyFiles" verfügen, können Sie einen SharePoint-Client erstellen und dann Datei-APIs aufrufen, damit sie mit Benutzerdateien interagieren, beispielsweise auf OneDrive for Business gespeicherte Dateien.

Dn848423.collapse_all(de-de,VS.140).gifErstellen des SharePoint-Clientobjekts

Zum Erstellen des SharePoint-Clientobjekts benötigen wir die im Funktionalitätsobjekt gespeicherten Endpunkt-URI-Informationen sowie das Zugriffstoken für die Ressource.

var sharePoint = new 
    Microsoft.CoreServices.SharePointClient (
    filesCapability.endpointUri,
    authContext.getAccessTokenFn(
        filesCapability.resourceId)
);

Dn848423.collapse_all(de-de,VS.140).gifAbrufen von Dateien und Ordnern

Nun können wir die Dateien aufzählen, indem wir getFileSystemItems() wie folgt aufrufen:

sharePoint.files.getFileSystemItems().fetch().then(
    function (value) {
    value.currentPage.forEach(function (o) {
        // o._type will indicate whether this is a
        // file or folder.
        // o._Id provides the full path.
        // o._name provides the name of the file.
    });
}, function (reason) {
    console.log(reason);
});

In der Demoanwendung ruft die App die Informationen für jede Datei ab und speichert die Informationen in einem lokalen JSON-Objekt. Die App bindet das JSON-Objekt mithilfe von AngularJS an die Benutzeroberfläche.

Dn848423.collapse_all(de-de,VS.140).gifTesten Sie es!

Die vollständige Anwendung finden Sie auf Github. Laden Sie sie herunter, und testen Sie das Beispiel, und geben Sie uns Feedback. Ihre Meinungen über die neuen APIs würden uns interessieren!

Die Tools herunterladen Herunterladen der Visual Studio-Tools für Apache Cordova oder weitere Informationen