Различия между конечными точками 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 |