API Graph для доступа к oneDrive для бизнес-элементов / файлов - PullRequest
0 голосов
/ 21 сентября 2019

Я работаю над приложением для управления документами, пользователи которого должны иметь доступ к папкам в oneDrive, иногда работать с тем же документом / файлом, редактировать, копировать документ в приложении и загружать документ из приложения в oneDrive.А это значит, что папка должна быть доступна всем пользователям, имеющим права.Я мог бы заставить все работать, когда я использую свою личную учетную запись, например, я использую этот URL для получения списка файлов из папки X: "https://graph.microsoft.com/v1.0/me/drive/root:/folederX:/children"", все работает отлично. Но когда я использую бизнес-учетную запись, это нене работает. Я проверяю подлинность с помощью идентификатора клиента и получаю правильный токен, но после этого я получаю ошибку 400. Теперь я действительно сбит с толку, если то, чего я хочу достичь, действительно возможно с помощью oneDrive для бизнеса, или мы должны использовать sharepoint?Очевидно, папка X предоставлена ​​мне в бизнес-аккаунте oneDrive, а в моем собственном oneDrive ее нет. Извините, если вопрос кажется глупым, но я действительно запутался здесь.

ошибка:

Это ошибка: {"error": {"code": "accessDenied", "message": "Произошла ошибка при аутентификации запроса.", "InnerError": {"request-id": "230e946c-d81a-4bf1-903e-26d92c5441db "," date ":" 2019-09-20T10: 12: 38 "}}}

1 Ответ

0 голосов
/ 23 сентября 2019

Я понимаю, что вы пытаетесь использовать личную учетную запись Microsoft для доступа к файлам, которые были переданы вам в OneDrive для бизнеса вашего клиента.Поправьте меня, если есть какое-либо недопонимание.

Если это так, вам нужно использовать поток кода OAuth 2.0 для получения токена доступа.

Во-первых, я предполагаю, чтоВы добавили свою личную учетную запись в качестве гостя в Azure AD вашего клиента.И файл был передан в ваш личный кабинет.И в приложении, зарегистрированном в Azure AD вашего клиента, были назначены правильные делегированные разрешения.

Запросите код авторизации , например:

https://login.microsoftonline.com/{Tenant ID of your customer}/oauth2/authorize?
client_id={app id of the app registered in your customer's Azure AD}
&response_type=code
&redirect_uri={redirect uri of the app registered in your customer's Azure AD}
&response_mode=query
&resource=https://graph.microsoft.com
&state=12345

Вы получитеответ такой:

https://localhost/?code={code}&state=12345&session_state=54572324-6121-4add-85f8-22e3a815646b

Пожалуйста, скопируйте здесь "код" для позднего использования.

Затем вы можете отправить запрос на токен доступа:

enter image description here

Замените "jmaster.onmicrosoft.com" на клиента вашего клиента и измените другие значения (включая client_id , client_secret , redirect_uri и код ) в теле.

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

https://graph.microsoft.com/v1.0/users/{user id}/drive/root:/folederX:/children

Обратите внимание, что«пользователь» - это тот, кто поделился файлами с вами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...