我正在使用此方法构建一个通过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调用中收到“无法找到资源”。
关于我在这里缺少什么的想法?
答案 0 :(得分:2)
应用程序正在使用App-only authorization,目前不支持通过Microsoft Graph API访问OneDrive for Business。请使用Graph Explorer使用的delegated flow。
答案 1 :(得分:2)
明确的答案不再是这样。您现在可以使用客户端凭据授权(也称为“仅App”)访问OneDrive和SharePoint资源。
适用范围为Files.Read.All
,Files.ReadWrite.All
,Sites.Read.All
,Sites.ReadWrite.All