无法通过MS Graph API访问文件,但可以通过Graph Explorer访问



一个excel文件从用户A的Onedrive(个人文件夹、企业Onedrive(共享给用户B。我可以作为用户B(通过链接等(通过常规方式访问

如果我在MS Graph Explorer中运行这个调用,它对两个用户都能正常工作:

GET https://graph.microsoft.com/v1.0/users/5fb16e7a-e5a5-47f6-91b1-e4613327c13b/drive/root:/Shared/demo.xlsx:/workbook/worksheets/Sheet1/range(address='A1:B4')?$select=text

这对用户A和用户B都返回相同的结果:

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#workbookRange",
"@odata.type": "#microsoft.graph.workbookRange",
"@odata.id": "/users('5fb16e7a-e5a5-47f6-91b1-e4613327c13b')/drive/root/workbook/worksheets(%27%7B096996EB-0C8C-4BA4-8C96-DEE0AE8C5B97%7D%27)/range(address=%27A1:B4%27)",
"text": [
[
"Column1",

etc

我已经编写了一个Angular应用程序,注册并使用它访问Excel文件(以及用户日历(。但当我以用户B的身份运行应用程序时,我会得到以下响应:

{
"statusCode": 404,
"code": "itemNotFound",
"message": "The resource could not be found.",
"requestId": "26d9fb06-99eb-4e2a-8dae-7a42012de4b9",
"date": "2020-07-27T10:10:58.000Z",
"body": "{"code":"itemNotFound","message":"The resource could not be found.","innerError":{"date":"2020-07-27T12:10:58","request-id":"26d9fb06-99eb-4e2a-8dae-7a42012de4b9"}}"
}

控制台显示:加载资源失败:服务器响应状态为404(未找到(

该应用程序适用于用户A。此外,日历访问代码适用于A和B。

我尝试了很多不同的东西,但我看不出哪里出了问题!有什么想法吗?

我做了进一步的测试,发现问题是由于访问权限造成的。共享文件的用户A拥有作为所有者的所有特权,也来自Graph API。

然而,用户B只有文件.read(考虑到要求访问文件,我认为这是合适的(。事实证明,它还需要站点。read才能访问";sharepoint站点";基于onedrive文件存储所以添加了这一点后,它对用户B也很好希望这次经历对其他人也有用。

最新更新