OneDrive-API-Endpunktunterschiede

Die OneDrive-API ist über mehrere unterschiedliche API-Endpunkte verfügbar. Microsoft Graph ist der bevorzugte Endpunkt für den Zugriff auf OneDrive Personal-, OneDrive for Business- und SharePoint-Onlinedateien. In einigen Unternehmensszenarien wie SharePoint Server 2016 kann es erforderlich sein, über den direkten API-Endpunkt auf OneDrive for Business- und SharePoint-Daten zuzugreifen, ohne Microsoft Graph zu verwenden. Die folgenden Hinweise enthalten Details zu den Unterschieden zwischen Microsoft Graph und dem direkten API-Endpunkt.

Unterschiede:

Namespaces

Methoden

Wenn Sie den direkten Endpunkt verwenden, erfordern Methoden und Aktionen ein Namespacepräfix. Um beispielsweise sharedWithMe auf dem direkten Endpunkt zu verwenden, müssen Sie dem Aktionsnamen das Präfix oneDrive. hinzufügen. Beachten Sie, dass bei diesem Präfix die Groß- und Kleinschreibung berücksichtigt wird.

https://{server}/_api/v2.0/drive/oneDrive.sharedWithMe

Die folgenden Aktionen und Methoden müssen für den direkten Endpunkt ein Präfix enthalten:

Instanzanmerkungen

Eigenschaften zu Elementen, die mit einem At-Zeichen (@) zurückgegeben werden, umfassen auch einen Namespace. Wenn Sie Microsoft Graph verwenden, ist der Namespace immer microsoft.graph. Beim Zugriff auf den direkten API-Endpunkt ist der Namespace jedoch ein anderer.

Dokumentierter Eigenschaftenname (Microsoft Graph) Eigenschaftenname direkte API
@microsoft.graph.downloadUrl @content.downloadUrl
@microsoft.graph.sourceUrl @content.sourceUrl
@microsoft.graph.conflictBehavior @name.conflictBehavior

Eigenschaftennamen

Einige Eigenschaftennamen zu Ressourcen werden geändert, wenn sie von Microsoft Graph zurückgegeben werden. Die folgende Tabelle enthält die Ressourcen und Eigenschaftennamen, die bei Microsoft Graph und OneDrive-API unterschiedlich sind.

Dokumentierter Eigenschaftenname (Microsoft Graph) Eigenschaftenname direkte API
folder.view folder.folderView

Ermitteln eines Endpunkts

Microsoft Graph bietet einen einzelnen API-Endpunkt, graph.microsoft.com, für Heimanwender- und Arbeits-/Schulkonten. Wenn Sie die OneDrive-API direkt verwenden, müssen Sie den richtigen OneDrive-API-Endpunkt ermitteln.

Um den richtigen Endpunkt für OneDrive-API zu ermitteln, müssen Sie Microsoft Graph verwenden.

OneDrive Personal-Konten

Um auf die OneDrive-API für OneDrive Personal zuzugreifen, muss Ihre App den https://api.onedrive.com/v1.0-Endpunkt für alle Anforderungen verwenden.

Sie können feststellen, ob der angemeldete Benutzer ein OneDrive Personal-Benutzer ist, indem Sie das id_token für tid: 9188040d-6c67-4c5b-b112-36a304b66dad überprüfen. Weitere Informationen hierzu finden Sie im Thema zum Active Directory v2-Protokoll.

OneDrive for Business und SharePoint

Um auf den direkten API-Endpunkt für OneDrive for Business zuzugreifen, muss Ihre App zuerst die MySite-URL des Benutzers ermitteln. Sie können eine Anforderung an Microsoft Graph senden, damit diese Informationen zurückgegeben werden:

GET https://graph.microsoft.com/v1.0/me?$select=mySite
HTTP/1.1 200 OK
Content-Type: application/json

{
    "mySite": "https://contoso-my.sharepoint.com/personal/rgregg_contoso_com/"
}

Sie können dann den API-Pfad für die OneDrive-API, _api/v2.0/, an diese URL anhängen, um den API-Endpunkt zu erstellen:

var apiEndPoint = response.mySite + '_api/v2.0';

In einigen Fällen wird einem Arbeits-/Schulbenutzer kein mySite-Wert zurückgegeben. Dies tritt auf, wenn für das Konto noch kein OneDrive for Business erstellt wurde. In diesem Szenario muss Ihre App Microsoft Graph für die Bereitstellung des OneDrive des Benutzers verwenden, indem der Stammordner des Laufwerks von Microsoft Graph angefordert wird.

Berechtigungen

Für Aufrufe von SharePoint und OneDrive for Business können Sie Ihrer Anwendung diese Berechtigungsbereiche über das Azure-Portal mit dem Dienst Office 365 SharePoint Online zuweisen. Für OneDrive Personal wird die Bereichszeichenfolge direkt an den OAuth-Workflow übergeben und muss nicht vorab registriert werden.

Microsoft Graph-Berechtigung OneDrive Personal Sharepoint und OneDrive for Business
Files.Read OneDrive.Read MyFiles.Read
Files.ReadWrite OneDrive.ReadWrite MyFiles.Write
Files.ReadWrite.All OneDrive.ReadWrite Files.ReadWrite.All
Files.ReadWrite.AppFolder OneDrive.AppFolder Files.ReadWrite (Files.ReadWrite.AppFolder derzeit nicht unterstützt
Sites.Read.All Nicht zutreffend Sites.Read.All
Sites.ReadWrite.All Nicht zutreffend Sites.ReadWrite.All