对于OneDrive for Business的OAuth 2.0流程,应该使用: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
除了传递范围?
根据这篇MS博客文章,onedrive,onedrive for business等应该能够使用这个新的V2 OAuth 2.0流程: https://blogs.msdn.microsoft.com/richard_dizeregas_blog/2015/09/04/working-with-the-converged-azure-ad-v2-app-model/
或者,它应该是: https://login.microsoftonline.com/common/oauth2/authorize
是否已在AAD中为应用程序设置权限?
使用前者(v2 OAuth)时,我不断收到错误,说明我的作用域无效:AADSTS70011:输入参数'范围'提供的值。无效。范围offline_access onedrive.readwrite无效。
使用后者时,我不断收到以下错误: unauthorized_client AADSTS70001:应用程序' xxxx'此API版本不支持此功能。跟踪ID:d5d359ad-2e6b-468d-9a95-df51656e9cc9
我有OneDrive使用实时API为用户帐户工作,但由于它们已弃用,看起来用户和企业OneDrive帐户应该使用较新的API,这会让人感到困惑。
感谢您的帮助。
答案 0 :(得分:1)
要访问直接OneDrive for Business端点(而不是使用Graph API),您需要按照Register an app for OneDrive for Business的步骤操作。这需要Azure订阅(即使它是免费的)并使用Azure门户来定义应用程序所需的权限。完成此配置后,您将使用第二个授权端点(URL中没有v2)。
听起来您使用新的应用注册门户(apps.dev.microsoft.com)注册了一个应用,该门户仅与v2 OAuth端点兼容,后者仅适用于Microsoft Graph。
您可以通过Office 365 Getting Started页面创建新的应用程序ID来回避Azure内容,但如果您以后需要更改应用程序,则需要Azure订阅。
此外,我们正在努力使用Graph API修复4MB上传限制,但我还没有ETA来解决何时解决问题。