Различия между конечными точками API OneDrive

API OneDrive доступен из нескольких конечных точек API. Microsoft Graph — это предпочтительная конечная точка для доступа к файлам в OneDrive персональный, OneDrive для бизнеса и SharePoint Online. При использовании SharePoint Server 2016 и других корпоративных продуктов может потребоваться получить доступ к данным в OneDrive для бизнеса и SharePoint, используя прямую конечную точку API. Ниже описаны различия между Microsoft Graph и прямой конечной точкой API.

Различия:

Пространства имен

Методы

При использовании прямой конечной точки для методов и действий требуется префикс пространства имен. Например, чтобы использовать метод sharedWithMe для прямой конечной точки, необходимо к имени действия добавить префикс oneDrive.. Обратите внимание, что в этом префиксе учитывается регистр символов.

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

При выполнении указанных ниже действий или использовании методов для работы с прямой конечной точкой необходимо добавлять к ним префиксы.

Заметки для экземпляров

Свойства в элементах, возвращаемых с символом @, также включают пространство имен. Если вы используете Microsoft Graph, всегда применяется пространство имен microsoft.graph. При доступе к прямой конечной точке API используется другое пространство имен.

Имя свойства в документации (Microsoft Graph) Имя свойства непосредственного API
@microsoft.graph.downloadUrl @content.downloadUrl
@microsoft.graph.sourceUrl @content.sourceUrl
@microsoft.graph.conflictBehavior @name.conflictBehavior

Имена свойств

При возвращении из Microsoft Graph имена некоторых свойств в ресурсах будут изменены. В таблице ниже указаны ресурсы и имена свойств, которые различны для Microsoft Graph и API OneDrive.

Имя свойства в документации (Microsoft Graph) Имя свойства непосредственного API
folder.view folder.folderView

Обнаружение конечной точки

Microsoft Graph предоставляет одну конечную точку API (graph.microsoft.com) для учетных записей потребителей, а также рабочих и учебных учетных записей. При непосредственном использовании API OneDrive вам необходимо обнаружить правильную конечную точку API OneDrive.

Чтобы обнаружить правильную конечную точку для API OneDrive, необходимо использовать Microsoft Graph.

Учетные записи OneDrive персональный

Чтобы получить доступ к API OneDrive для работы с OneDrive персональный, приложение должно использовать конечную точку https://api.onedrive.com/v1.0 для всех запросов.

Вы можете определить, является ли пользователь, выполнивший вход в систему, пользователем OneDrive персональный, проверив id_token для tid: 9188040d-6c67-4c5b-b112-36a304b66dad. Дополнительные сведения об этом см. в статье о протоколе Active Directory версии 2.

OneDrive для бизнеса и SharePoint

Чтобы получить доступ к прямой конечной точке API для OneDrive для бизнеса, приложение должно сначала обнаружить URL-адрес личного сайта пользователя. Вы можете создать запрос, возвращающий эту информацию, в Microsoft Graph:

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/"
}

Затем вы можете добавить путь API OneDrive (_api/v2.0/) к этому URL-адресу, чтобы создать конечную точку API:

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

В некоторых случаях для пользователя с рабочей или учебной учетной записью не возвращается значение mySite. Это происходит, когда для учетной записи еще не создан собственный OneDrive для бизнеса. В этом сценарии приложению потребуется использовать Microsoft Graph, чтобы подготовить OneDrive пользователя к работе, запросив корневую папку диска из Microsoft Graph.

Разрешения

Для вызова SharePoint и OneDrive для бизнеса можно назначить эти области разрешений своему приложению через портал Azure с помощью службы Office 365 SharePoint Online. В OneDrive персональный строка области передается непосредственно в рабочий процесс OAuth, и не возникает необходимости регистрировать ее заранее.

Разрешение Microsoft Graph OneDrive персональный SharePoint и OneDrive для бизнеса
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 сейчас не поддерживается)
Sites.Read.All Недоступно Sites.Read.All
Sites.ReadWrite.All Недоступно Sites.ReadWrite.All