我的(第一个)Android应用程序运行良好,但是我遇到了一个非常重要的问题,我想解决几天的问题
我正在尝试使用Graph从另一个帐户访问OneDrive中的Excel文档。此文件通过共享链接声明为所有人公开。
我正在使用下一个GET来检索文件
唯一的问题是文件必须位于用户共享文件夹中,出于安全原因,我希望避免该文件。
我正在使用onedrive进行业务,但是如果有问题,我可以使用个人帐户,尽管该应用程序的用户必须使用业务,因为我仅向特定组织授予访问权限。
[2018年9月27日更新]
关于文件不需要放在共享文件夹中,以下是我认为这一点的原因(我希望我错了):
在我的企业onedrive帐户中,我以公共身份共享文件并检索共享链接:
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注销,并确保共享链接仍然有效。
我使用其他帐户(相同的组织)连接Graph Explorer,并运行相同的命令以检索excel JSON:
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
这一次我收到“失败-状态码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"
}
}
}
如果我使用浏览器输入共享链接,文件将显示在共享列表中(在浏览器的“最近”文件夹下方和“发现”文件夹上方):
https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
当我返回到Graph Explorer并再次运行命令时,我得到一个HTTP 200
响应。
https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
我的结论是文件必须位于共享文件夹中。如果我缺少某些东西,请纠正我。
ps:文件出现在第二个帐户的“共享”文件夹中后,查看OneDrive的“管理访问”,现在我看到第二个帐户的初始信息。这可能表明文件已被正式访问和共享。从他的共享文件夹中删除文件,保留其首字母缩写和Graph Explorer的正确响应。仅取消共享链接似乎会取消共享。
[UPDATE Sep-27 2018-2]
自Marc先生提出另一条评论以来,我对问题作了一些修改,并指出,我也尝试使用我的实际共享链接尝试下一个链接。在获得实际的excel时,这具有类似的响应(不确定确切的错误代码)和其他问题。
答案 0 :(得分:1)
您需要将链接发送给用户或将邀请邮件发送给用户,推荐两种方式。
如果文件包含敏感信息,则需要将内容与原始文件分开,以便符合GDPR。当前,共享是针对项目/文件级别的,而不是针对工作表/ excel行的级别的。
您可以使用createLink操作通过共享链接共享 DriveItem 。