MS Graph API:找不到OneDrive资源

时间:2016-03-08 21:08:39

标签: onedrive microsoft-graph

我正在使用此方法构建一个通过Graph API连接到OneDrive for Business的Windows服务: https://graph.microsoft.io/en-us/docs/authorization/app_only

我已经成功验证了我的应用程序并拥有一个用于调用Graph API的令牌。我已将Azure AD应用程序权限授予Windows Azure Active Directory和Microsoft Graph(已选择所有应用程序和委派权限)。

我的目标是获取驻留在特定用户的OneDrive中的文件夹的内容。我需要进行以下Graph API调用:

//graph.microsoft.com/v1.0/users('user-guid')/drive/items/long-item-id-here/children

我可以使用Microsoft Graph Explorer成功执行此请求(使用我的Office 365凭据登录)。当我尝试与应用程序进行相同的调用时(使用上面收到的身份验证令牌),我得到一个“itemNotFound”代码,其中包含“无法找到资源”的消息。 (请求-ID: 5e814dce-c4c2-4615-90e6-ea8ab90cbc49)。但是,我能够查询根,“folder.childCount”属性显示根目录中正确的子项数:

//graph.microsoft.com/v1.0/users('user-guid')/drive/root

我已将文件夹的共享设置为“所有经过身份验证的用户”,但我仍然从API调用中收到“无法找到资源”。

关于我在这里缺少什么的想法?

2 个答案:

答案 0 :(得分:2)

应用程序正在使用App-only authorization,目前不支持通过Microsoft Graph API访问OneDrive for Business。请使用Graph Explorer使用的delegated flow

答案 1 :(得分:2)

明确的答案不再是这样。您现在可以使用客户端凭据授权(也称为“仅App”)访问OneDrive和SharePoint资源。

适用范围为Files.Read.AllFiles.ReadWrite.AllSites.Read.AllSites.ReadWrite.All