【问题标题】:OneDrive REST API and Sharepoint OnlineOneDrive REST API 和 Sharepoint Online
【发布时间】:2018-09-15 18:31:53
【问题描述】:

我的应用程序使用 OneDrive API(MS 图)来访问 OneDrive 免费帐户和 OneDrive for business。

该应用程序运行良好。 在 API 的文档中,我可以看到相同的 API 也可用于访问 Sharepoint Online 站点数据。

如何做到这一点?当我通过 MS 图形验证拥有 Sharepoint Online 帐户的用户时,只有他的驱动器(ondrive)但没有列出他的站点。

如何使用相同的 API 访问他的共享点站点?

【问题讨论】:

    标签: sharepoint onedrive


    【解决方案1】:

    我发现了如何使用 Graph API 来处理网站。

    要获取站点列表,请调用

    GET /v1.0/sites/
    

    然后使用 SITEID 获取驱动器列表(实际上是顶级文件夹)

    GET /v1.0/sites/SITEID/drives
    

    然后去获取一个驱动用户的内容

    GET /v1.0/sites/SITEID/drives/DRIVEID/root/children
    

    所有下一个调用都与onedrive驱动器相同

    但是,我仍然无法解决问题。如何创建新的顶级文件夹(站点上的新驱动器)。对此没有 API 调用

    【讨论】:

      【解决方案2】:

      我相信您正在寻找的是网站 API。如果您知道站点的路径或 ID,它可以让您与 SharePoint 站点进行交互。您可以在此处找到该 api 的文档:

      https://dev.onedrive.com/resources/site.htm

      目前还没有简单的方法来发现网站。但是,您可以搜索站点。您可以在此处阅读更多信息:

      https://dev.onedrive.com/sites/search.htm

      【讨论】:

        【解决方案3】:

        获取站点列表的端点不起作用,因此最后一个答案不再有效。 https://graph.microsoft.com/v1.0/sites

        我还没有找到一种方法来做到这一点,即在未经管理员同意的情况下发现网站。如果管理员同意流程没有问题,您可以尝试此解决方法,使用组的端点询问用户所属的组,您可以使用组来获取用户的文档库。

        获取组:

        获取https://graph.microsoft.com/v1.0/me/memberOf

        通过组 id,您可以使用此端点:

        GET https://graph.microsoft.com/v1.0/groups/{group-id}/drive

        因此,如果有人知道如何在未经管理员同意的情况下为用户发现网站,请分享。

        编辑:我不确定为什么我的答案被删除了,我的答案基本上有两件事:

        • 我注意到这里的一个答案不再有效。

        • 我给出了可能的其他解决方案。

        【讨论】:

          猜你喜欢
          • 2019-10-23
          • 1970-01-01
          • 2014-11-01
          • 1970-01-01
          • 2016-09-23
          • 2019-07-08
          • 2017-09-05
          • 1970-01-01
          • 2019-04-10
          相关资源
          最近更新 更多