Microsoft graph api OneDrive查询返回空数组

Microsoft graph api OneDrive查询返回空数组,microsoft-graph-api,onedrive,Microsoft Graph Api,Onedrive,我目前正在开发一个使用Microsoft Graph访问Office 365中OneDrive的解决方案。我正在使用adal4j库来处理身份验证,并已在portal.azure.com中配置了该应用程序 我的问题涉及到让孩子们到指定的驱动器。我使用的查询与下面所示的查询类似,因为我希望获取指定用户驱动器根级别的文件夹和文件: https://graph.microsoft.com/v1.0/users/*user id*/drives/*drive id*/root/children 当我登录

我目前正在开发一个使用Microsoft Graph访问Office 365中OneDrive的解决方案。我正在使用
adal4j
库来处理身份验证,并已在
portal.azure.com
中配置了该应用程序

我的问题涉及到让孩子们到指定的驱动器。我使用的查询与下面所示的查询类似,因为我希望获取指定用户驱动器根级别的文件夹和文件:

https://graph.microsoft.com/v1.0/users/*user id*/drives/*drive id*/root/children
当我登录到Graph Explorer并执行查询时,我会得到一个json结果,显示指定驱动器和用户的根文件夹内容。一切正常

当我从java应用程序调用它时,JSON节点
为空(
[]

最初我的想法是,因为Graph Explorer在门户中使用不同的应用程序id,这可能与访问权限有关。但是,我已成功读取O365租户中的用户配置文件、每个用户的驱动器id,并且如果我执行以下操作:

https://graph.microsoft.com/v1.0/users/*user id*/drives/*drive id*/root/search(q='')
它为我提供了相应用户驱动器中所有文件夹、子文件夹等的完整列表

因此,让我觉得这是我试图使用的图形查询的一个bug,而不是授权问题,但这并不能解释为什么它在图形浏览器中工作


所有调用都使用相同的java方法,url作为参数传入

接下来,azure门户应用程序权限可以为graph api添加权限。这确实是问题所在。搜索似乎忽略了权限并成功读取了数据,而/children调用遵守了安全模型。这引起了很多混乱,但现在已经解决了


谢谢Marc的帮助。

我的第一反应是必须是权限,但在这种情况下,搜索工作会很奇怪。您是否可以使用破解打开您的访问令牌并更新您的问题,以包括
scp
值?另外,打电话的人是问题中的驱动器的所有者吗?是的。这也是我的想法,但我无法理解几乎每一个电话都是如何正确工作的。令牌SCP值为:-Directory.AccessAsUser.All User.Read User.ReadBasic.AllOK,找到了添加更多设置的位置。现在已经设置了scp属性,到所有站点。管理所有站点。读取所有站点。写入目录。访问服务器。所有目录。读取所有目录。读取写入。所有文件。读取文件。读取所有文件。读取写入文件。读取写入文件。读取写入文件。读取写入文件。所有文件。读取写入文件。读取文件夹文件。读取写入文件。读取我的文件。脱机写入\u访问openid站点。读取所有用户。读取用户。ReadBasic.All。然而,当我在图中使用上述查询列出内容时,我会得到所有适当的子文件夹,但是,当我远程执行时,我只会得到documents文件夹?