这是我第一次发帖提问,对不起,如果我的措辞很奇怪。
我的参考资料是这个文件:https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/drive_sharedwithme
我希望得到一份“与我共享”的列表。已登录用户的项目,并提供包含downloadUrl的按钮以下载列表项。问题是我无法获得downloadUrl。
我在做的是:
1。请求GET /me/drive/sharedWithMe
此调用成功,响应通常与文档中的相同。
以下是回复的一部分:
object(stdClass)#3 (6) {
["@odata.type"]=>
string(26) "#microsoft.graph.driveItem"
["createdDateTime"]=>
string(20) "0001-01-01T00:00:00Z"
["id"]=>
string(34) "01TWWV5W37UJKHFIUBZZBZDEHOJNVOEZVP"
["lastModifiedDateTime"]=>
string(20) "2016-05-20T05:39:00Z"
["remoteItem"]=>
object(stdClass)#4 (5) {
["file"]=>
object(stdClass)#5 (0) {
}
["id"]=>
string(34) "01TWWV5W37UJKHFIUBZZBZDEHOJNVOEZVP"
["name"]=>
string(7) "2NF.PNG"
["parentReference"]=>
object(stdClass)#6 (1) {
["driveId"]=>
string(66) "b!XxxqXZ1tqUGbTG6lCAZp8lCk94i3qvhJt1qf0GJTLQf11toCmqOoS4hkfSFKzG0F"
}
["size"]=>
int(0)
}
["size"]=>
int(0)
}
从响应中我得到了" driveId"和" id"该项目。它们将在步骤2中使用。
2.请求GET /drives/<remoteItem.driveId>/items/<id>
这就是我获取downloadUrl的方法,但是这个调用给了我401 401 Unauthorized错误响应:
{"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":"Access denied. You do not have permission to perform this action or access this resource.","innerError":{"request-id":"64f90e20-92a4-4002-8833-da5de026c076","date":"2016-05-27T10:30:58"}}}
为了解决这个问题,我试图启用一些权限:Files.Read.All&amp; Sites.Read.All。
以下是我解码的access_token的一部分,以查看我所有已启用的权限
scp: "Calendars.ReadWrite Contacts.ReadWrite Directory.ReadWrite.All Files.Read Files.Read.All Files.ReadWrite Group.ReadWrite.All Mail.ReadWrite Mail.Send Sites.Read.All User.Read User.Read.All User.ReadWrite",
我在这里问的是:为什么它给我401未经授权的错误?以及如何解决它?
在此先感谢,对于那个漫长的水平代码部分和糟糕的英语,我感到抱歉。
答案 0 :(得分:0)
通过sharedWithMe查找项目以引用项目时,您应该使用返回项目上的ID,而不是远程项目参考信息。
sharedWithMe返回的项目是OneDrive中实际项目的特殊隧道,其信息在remoteItem方面提供。
为了更好的可读性,这里是一个关于SharedWithMe返回的项目的示例json:
{
"id": "DA5D51067000136E!303",
"remoteItem": {
"id": "8BF6000DBC6C4A4C!3275",
"parentReference": {
"driveId": "8bf6000dbc6c4a4c"
}
}
}
要检索项目信息的内容,请在默认驱动器上使用以下GET请求
GET /drive/items/DA5D51067000136E!303
答案 1 :(得分:0)
我在github中询问了microsoft graph api并在那里找到了我的答案。
这是link
导致401 Unauthorized错误的原因是我的用户帐户无法访问http://mytenant.sharepoint.com/
现在已经给出了许可,我再次请求第2步。响应包含我需要的downloadUrl
谢谢你的回答,对不起,如果我花一点时间。