使用Microsoft图形访问共享到所有的OneDrive工作表

时间:2018-09-26 19:48:48

标签: excel microsoft-graph onedrive

我的(第一个)Android应用程序运行良好,但是我遇到了一个非常重要的问题,我想解决几天的问题

我正在尝试使用Graph从另一个帐户访问OneDrive中的Excel文档。此文件通过共享链接声明为所有人公开。

我正在使用下一个GET来检索文件

https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows

唯一的问题是文件必须位于用户共享文件夹中,出于安全原因,我希望避免该文件。

我正在使用onedrive进行业务,但是如果有问题,我可以使用个人帐户,尽管该应用程序的用户必须使用业务,因为我仅向特定组织授予访问权限。

[2018年9月27日更新]

关于文件不需要放在共享文件夹中,以下是我认为这一点的原因(我希望我错了):

  1. 在我的企业onedrive帐户中,我以公共身份共享文件并检索共享链接:

    https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
    
  2. 我进入Graph Explorer并运行命令以检索与excel JSON相同的文件:

    https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
    
  3. 图形浏览器以HTTP 200和正确的JSON(如上所述,也可以在我的android应用程序上正常工作)答复。

  4. 我从Graph Explorer和OneDrive注销,并确保共享链接仍然有效。

  5. 我使用其他帐户(相同的组织)连接Graph Explorer,并运行相同的命令以检索excel JSON:

    https://graph.microsoft.com/v1.0/drives/MY_DRIVE/MY_EXCEL_FILE/workbook/worksheets/Data/tables/TableData/rows
    
  6. 这一次我收到“失败-状态码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"
            }
        }
    }
    
  7. 如果我使用浏览器输入共享链接,文件将显示在共享列表中(在浏览器的“最近”文件夹下方和“发现”文件夹上方):

     https://MY_ORGANIZATION.sharepoint.com/:x:/g/personal/MY_USER/Eabkxa2md3JEsW0qQEuYRK4BKnnnHeJqNuspeZ6TEdkWsQ
    
  8. 当我返回到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时,这具有类似的响应(不确定确切的错误代码)和其他问题。

Accessing shared DriveItems

1 个答案:

答案 0 :(得分:1)

您需要将链接发送给用户或将邀请邮件发送给用户,推荐两种方式。

如果文件包含敏感信息,则需要将内容与原始文件分开,以便符合GDPR。当前,共享是针对项目/文件级别的,而不是针对工作表/ excel行的级别的。

  

您可以使用createLink操作通过共享链接共享 DriveItem