我们有一个Windows客户端应用程序,它通过Graph REST API与OneDrive集成 . 最近,我们开始添加对与当前用户共享的内容的支持,特别是文件夹 . 我们可以访问这些项目:
GET https://graph.microsoft.com/v1.0/me/drive/sharedWithMe
但是在访问返回的项目时遇到了问题 . 当我尝试:
GET https://graph.microsoft.com/v1.0/drives/RemoteDriveID/items/RemoteItemID/children
我用"The resource could not be found."得到404错误当我尝试将远程站点ID放在那里时(只有站点ID和三联描述here)以这种格式:
GET https://graph.microsoft.com/v1.0/sites/RemoteSiteID/drives/RemoteDriveID/items/RemoteItemID
我收到400错误,“提供的ID不适合当前主机” . 我正在使用的所有ID都来自remoteItem facet,根据文档 . 我们的应用程序具有Files.ReadWrite.All和Sites.ReadWrite.All权限 . 对服务器的所有其他调用都有效,因此它不是OAuth或基本请求问题 . 从其他帖子看,似乎其他人要么没有这个问题,要么从来没有解决他们的问题 .
我们的最终目标是与用户共享一个文件夹,以便我们的应用程序同步内容 .
1 回答
你问@JackHunsinger已经有一段时间了,但fwiw文件夹共享方案对我有用 .
我正在使用为用户A获取的访问令牌,并使用如下请求创建共享权限:
回复此回复:
之后,用户B正在检索文件夹内容,如:
其中
driveId
和folderId
在两个请求中都相同 . 即用户B正在使用remoteItem
facet,就像它写在问题中一样 .也许比较上述权限json与你得到的,将帮助你追踪你的问题:-)
如果您的应用未创建权限,您可能会发现通过以用户A发送此权限来检查相关文件夹的权限很有用:
好奇心(可能对@DanSilver有趣......):
顺便说来,似乎有点奇怪,
<user B email>
在许可下显示"invitedBy"
- 我希望看到<user A email>
那里......值得注意的是 - 我认为 - 与其他OneDrive用户共享并不真正需要
shareId
. 它仅用于/shares
endpoints ,它似乎只能读取 .