Вызов graph API для доступа к OneDrive (office365) через другую службу REST

#microsoft-graph-api #onedrive #office365api

#microsoft-graph-api #onedrive #office365api

Вопрос:

Мы хотим загружать файлы через службу REST в наш OneDrive. В службе REST мы вызываем Microsoft Graph API, но я получаю ошибку 401, которая, как я предполагаю, связана с проблемой авторизации, мне интересно, каков наилучший подход здесь?

Весь процесс отлично работает в нашем веб-приложении.

Я предоставил разрешение приложению на портале Azure Active Directory и подтвердил согласие на

  https://login.microsoftonline.com/<tenant>/adminconsent?client_id=<client-id>
  

Затем попытался получить токен

 url = "https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token"
"client_id": credential.clientid
"client_secret", credential.clientsecret
"scope", "https://graph.microsoft.com/.default"
"grant_type", "client_credentials"
  

Я все еще получал ошибку 401.

Затем я исправил разрешения, теперь я получаю access_token, теперь я сначала проверил, существует ли файл в определенной папке в OneDrive, если нет, то загрузите файл.

Но теперь я получаю следующую ошибку:

 {
"statuscode": 403,
"body": "{rn  "error": {rn    "code": "AccessDenied",rn    "message": "Either scp or roles claim need to be present in the token.",rn    "innerError": {rn      "date": "2020-08-13T10:12:33",rn      "request-id": "338a2758-m7e0-4289-bnna-45pb14c79efa"rn    }rn  }rn}"
}
  

Я использовал следующий API для проверки, существует ли файл:

 "https://graph.microsoft.com/v1.0/sites/<siteid>/drive/root:/<filePath>:/children"
  

Я не уверен, какие роли / разрешения мне нужно установить.