Azure active directory 使用Microsoft graph api读取OneDrive文件

Azure active directory 使用Microsoft graph api读取OneDrive文件,azure-active-directory,microsoft-graph-api,onedrive,msal,Azure Active Directory,Microsoft Graph Api,Onedrive,Msal,我正在尝试使用Microsoft Graph API访问我的OneDrive(个人帐户)文件,但无法使其正常工作。我已经读了好几天了,运气不好。 我用的是“”。我已在应用程序注册门户中创建了一个应用程序,并设置了应用程序权限。获取令牌可以很好地工作,但当我尝试使用该令牌读取OneDrive的根目录时,会显示“拒绝访问”,“令牌中需要存在scp或角色声明。”。当我使用v2.0版本获取令牌,然后使用v1.0版本访问OneDrive时,就会发生这种情况。 即,我使用此URL获取令牌: 以及此URL以获

我正在尝试使用Microsoft Graph API访问我的OneDrive(个人帐户)文件,但无法使其正常工作。我已经读了好几天了,运气不好。 我用的是“”。我已在应用程序注册门户中创建了一个应用程序,并设置了应用程序权限。获取令牌可以很好地工作,但当我尝试使用该令牌读取OneDrive的根目录时,会显示“拒绝访问”,“令牌中需要存在scp或角色声明。”。当我使用v2.0版本获取令牌,然后使用v1.0版本访问OneDrive时,就会发生这种情况。 即,我使用此URL获取令牌: 以及此URL以获取OneDrive根目录: ?$expand=缩略图,子项($expand=缩略图)

当我执行“”时,它工作正常


有什么问题?

对于个人帐户和与个人帐户(如个人OneDrive)关联的数据,只支持委托(授权代码流)。此处不支持客户端凭据流。客户端凭据流仅在商业(Azure AD)场景中受支持

对于为什么需要对personal OneDrive使用客户端凭据流(相对于授权代码流),您是否考虑了特定的场景


希望这有帮助,

嗨,丹,谢谢你的回答。我想使用客户端凭据流的原因是,我想创建一个服务,将视频从网络摄像机同步到OneDrive。该服务应在docker容器中的Raspberry pi上运行(即在linux上),因此我不能使用浏览器弹出的身份验证流。据我所知,支持此方案的唯一流程是客户端凭据。Dan,你知道我如何在没有浏览器弹出窗口的情况下解决方案吗?请查看Vittorio在此处描述的设备配置文件:。您需要使用ADAL(它使用v1授权/令牌端点),但这仍然适用于您。还有一个示例:嗨,丹,我尝试了你指的示例,但它们在使用个人microsoft帐户时不起作用。我收到以下错误:关联ID:bcdafa4f-d332-4acc-af2b-42433d834866时间戳:2017-11-12 20:25:58Z AADSTS50020:我们无法从该api版本为Microsoft帐户颁发令牌。请联系应用程序供应商,因为他们需要使用协议的2.0版来支持此功能。很抱歉这里的建议-不幸的是,v2.0协议不支持设备流。我需要请其他人看看这个,看看这里是否还有其他选择。