我目前正致力于使用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节点value
为空([]
)。
最初我的想法是,因为Graph Explorer在门户网站中使用了不同的app id,这可能与访问权限有关。但是,我成功读取了O365租户中的用户配置文件,每个用户的驱动器ID,如果我执行以下操作:
https://graph.microsoft.com/v1.0/users/*user id*/drives/*drive id*/root/search(q='')
它为我提供了相应用户驱动器中所有文件夹,子文件夹等的完整列表。
因此,让我认为这是我试图使用的Graph查询的错误而不是授权问题,但是,这不能解释它在Graph Explorer中的工作原理。
所有调用使用相同的java方法,并将url作为参数传入。
答案 0 :(得分:0)
为了跟进,azure门户网站应用程序权限可以为图形API添加权限。这确实是问题所在。看起来搜索忽略了权限并成功读取数据,而/ children调用则表示尊重安全模型。这引起了很多困惑,但现在已经解决了。
感谢Marc的帮助。