使用 Microsoft Graph 访问共享到所有人的 onedrive 工作表
accessing shared-to-all onedrive worksheet using microsoft graph
我的(第一个)android 应用程序工作得很好,但我还有一个非常重要的问题,我已经尝试解决好几天了
我正在尝试使用 Graph 从另一个帐户访问我的 OneDrive 中的 Excel 文档。此文件已通过共享 link.
向所有人声明 public
我正在使用下一个 GET 来检索文件
唯一的问题是该文件必须位于用户共享文件夹中,出于安全原因我希望避免这样做。
我正在使用 onedrive for business,但如果这有问题,我可以使用个人帐户,但应用程序的用户必须使用 business,因为我只授予特定组织访问权限。
[2018 年 9 月 27 日更新]
关于文件不需要放在共享文件夹中,以下是我这样认为的原因(希望我是错的):
在我的企业 onedrive 帐户中,我将文件共享为 public 并检索共享 link:
https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
我输入 Graph Explorer 和 运行 命令来检索与 excel JSON 相同的文件:
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
图表浏览器回复 HTTP 200
和正确的 JSON(如前所述,在我的 android 应用程序上也能正常工作)。
我从 Graph Explorer 和 OneDrive 注销并确保共享 link 仍在工作。
我使用不同的帐户(同一组织)和 运行 相同的命令连接 Graph Explorer 以检索 excel JSON:
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
这次我得到"Failure - Status Code 404":
{
"error": {
"code": "itemNotFound",
"message": "The resource could not be found.",
"innerError": {
"request-id": "6d095277-fa07-40ba-bfcb-c93e96660fdc",
"date": "2018-09-27T15:43:28"
}
}
}
如果我使用浏览器输入共享 link,文件会显示在共享列表中(在浏览器上位于 "Recent" 和 "Discover" 文件夹之上) :
https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
当我 return 到 Graph Explorer 并再次 运行 命令时,我收到 HTTP 200
响应。
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
我的结论是文件必须在共享文件夹中。如果我遗漏了什么,请纠正我。
ps: 文件出现在第二个帐户的 "shared" 文件夹后,查看 OneDrive "Manage Access",我现在看到第二个帐户的初始值。这可能表示文件已正式访问和共享。从他的共享文件夹中删除文件,keeps 它的首字母和来自 Graph 资源管理器的正确响应。只取消分享link好像取消了分享
[2018 年 9 月 27 日更新 - 2]
由于 Marc 先生的另一条评论,我稍微修改了这个问题并想指出我还尝试了下一个 link 使用我的实际分享 link。这有类似的响应(不确定确切的错误代码)+获取实际 excel.
的其他问题
您需要将link发送给用户或将邀请邮件发送给用户,这两种方式都是推荐的方式。
如果文件包含敏感信息,您需要将内容与原始文件分开,这样才能合规GDPR。目前分享的是item/file级,不是worksheet/excel-rows级。
You can use createLink action to share a DriveItem via a sharing link.
我的(第一个)android 应用程序工作得很好,但我还有一个非常重要的问题,我已经尝试解决好几天了
我正在尝试使用 Graph 从另一个帐户访问我的 OneDrive 中的 Excel 文档。此文件已通过共享 link.
向所有人声明 public我正在使用下一个 GET 来检索文件
唯一的问题是该文件必须位于用户共享文件夹中,出于安全原因我希望避免这样做。
我正在使用 onedrive for business,但如果这有问题,我可以使用个人帐户,但应用程序的用户必须使用 business,因为我只授予特定组织访问权限。
[2018 年 9 月 27 日更新]
关于文件不需要放在共享文件夹中,以下是我这样认为的原因(希望我是错的):
在我的企业 onedrive 帐户中,我将文件共享为 public 并检索共享 link:
https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
我输入 Graph Explorer 和 运行 命令来检索与 excel JSON 相同的文件:
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
图表浏览器回复
HTTP 200
和正确的 JSON(如前所述,在我的 android 应用程序上也能正常工作)。我从 Graph Explorer 和 OneDrive 注销并确保共享 link 仍在工作。
我使用不同的帐户(同一组织)和 运行 相同的命令连接 Graph Explorer 以检索 excel JSON:
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
这次我得到"Failure - Status Code 404":
{ "error": { "code": "itemNotFound", "message": "The resource could not be found.", "innerError": { "request-id": "6d095277-fa07-40ba-bfcb-c93e96660fdc", "date": "2018-09-27T15:43:28" } } }
如果我使用浏览器输入共享 link,文件会显示在共享列表中(在浏览器上位于 "Recent" 和 "Discover" 文件夹之上) :
https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
当我 return 到 Graph Explorer 并再次 运行 命令时,我收到
HTTP 200
响应。https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
我的结论是文件必须在共享文件夹中。如果我遗漏了什么,请纠正我。
ps: 文件出现在第二个帐户的 "shared" 文件夹后,查看 OneDrive "Manage Access",我现在看到第二个帐户的初始值。这可能表示文件已正式访问和共享。从他的共享文件夹中删除文件,keeps 它的首字母和来自 Graph 资源管理器的正确响应。只取消分享link好像取消了分享
[2018 年 9 月 27 日更新 - 2]
由于 Marc 先生的另一条评论,我稍微修改了这个问题并想指出我还尝试了下一个 link 使用我的实际分享 link。这有类似的响应(不确定确切的错误代码)+获取实际 excel.
的其他问题您需要将link发送给用户或将邀请邮件发送给用户,这两种方式都是推荐的方式。
如果文件包含敏感信息,您需要将内容与原始文件分开,这样才能合规GDPR。目前分享的是item/file级,不是worksheet/excel-rows级。
You can use createLink action to share a DriveItem via a sharing link.