我们正在使用Microsoft Graph API上载企业和个人帐户的文件。
帐户登录后,我们会请求一些权限,但不会添加OneDrive所需的权限。在用户明确要求上传文件之后,我们将发送另一个要求访问令牌的请求,该请求包括到目前为止所有的作用域+ files.readwrite.all。直到一个月前(直到),这一直工作得很好。现在,它适用于企业帐户,但不适用于个人帐户。
我们执行的步骤:
将用户重定向到login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=...&redirect_uri=https%3A%2F%2Fmywebsite.com%2Fsignin-microsoft&response_type=code%20id_token&scope=openid%20offline_access%20profile%20email%20mail.readwrite%20mail.send%20contacts.readwrite%20calendars.readwrite%20people.read%20user.read%20files.readwrite.all&response_mode=form_post&nonce=636656...&state=CfDJ8MLMcPchE...
用户选择他们的帐户(已登录的帐户)
使用以下屏幕将它们重定向到https://login.live.com/oauth20_authorize.srf
:
未为我们的应用程序添加权限,并且没有收到任何错误。 这也是错误页面的响应:
Error Info
"/pp1600/oauth20_authorize.srf?client_id=9d3c...&scope=openid+offline_access+profile+email+mail.readwrite+mail.send+contacts.readwrite+calendars.readwrite+people.read+user.read+files.readwrite.all&redirect_uri=https%3a%2f%2fmywebsite.com%2fsignin-microsoft&response_type=code+id_token&state=CfD...&response_mode=form_post&nonce=636...&x-client-Ver=5.2.0&display=host&uaid=521...&msproxy=1&issuer=mso&tenant=common&ui_locales=en-US&username=pesho..."
loginserverprotocolhandler(846)
HR=0x80041018
Method string:GET
URL:"/pp1600/oauth20_authorize.srf"
Query string:"code=5"
Server protocol:HTTP/1.1
更新:经过几次尝试,我实际上设法将访问权限授予我的一个帐户以进行OneDrive集成。不太确定发生了什么变化。我只是使用Outlook和我们的应用程序中的不同Outlook帐户登录和注销。之后,我尝试使用其他帐户执行相同的过程,但再次失败。每次尝试时,我在两个地方都使用相同的帐户登录。
我注意到的另一件事是,在同意之前是所有权限,现在同意屏幕显示仅请求文件权限。