首页 文章

通过哪种API,我可以在SharePoint上访问OneDrive

提问于
浏览
0

我有一个帐号 username@someone.onmicrosoft.com .
当我使用此链接https://onedrive.live.com/about/en-us/使用此帐户登录OneDrive时,我被重定向到此链接(为清晰起见,添加了换行符)

https://someone-my.sharepoint.com/
personal/itsupport_company_com
/_layouts/15
/onedrive.aspx?
FolderCTID=0x012000908740EE6082C74E82DD6BBFB737D5D5
&id=%2Fpersonal%2Fitsupport%5Fcompany%5Fcom%2FDocuments%2FReportsFolder

question 1 :我可以从网址中提取有用的东西( personalitsupport_company_com 代表什么?)?

我可以在Web UI中看到文件和文件夹,到目前为止一切都很好 .

现在我想使用REST API从OneDrive下载一些文件 .

现在,我正在尝试使用Graph API . 我有一个注册的应用程序,我可以获得具有正确权限的access_token(在http://jwt.calebb.net/中签入)(权限是 Files.Read.All Sites.Read.All User.Read ),我可以发出请求(例如 /me endpoint返回正确的信息 .

到现在为止还挺好 .

现在我尝试了 GET /v1.0/sites endpoints (according to this,产生了这个响应:

{
  "error": {
    "code": "invalidRequest",
    "message": "Cannot enumerate sites",
    "innerError": {
      "request-id": "0d449eaf-21b8-4c9d-a372-7e9827e1ef19",
      "date": "2017-08-11T09:37:01"
    }
  }
}

因此,我无法获取我的site_id(无论这意味着什么)来获取相关的驱动器 .

接下来,我试图请求此 endpoints GET /v1.0/me/drive 无济于事

{
  "error": {
    "code": "ResourceNotFound",
    "message": "User's mysite not found.",
    "innerError": {
      "request-id": "526c5bb3-23c0-4a85-8295-195b5e2d316c",
      "date": "2017-08-11T09:39:56"
    }
  }
}

Question 2 :为什么我无法访问资源?我的权限有问题吗?是否有完全不同的api访问onedrive / sharepoint?

我有一种模糊的感觉,没有与我的帐户关联的驱动器,我在UI中可以看到的文件夹是共享的 . 我可以通过API访问吗?

1 回答

  • 0

    哇,我知道了 . 我不明白一切,但这里是件 . 希望有人可能会发现它很有用 .

    答案是, you can access OneDrive/Sharepoint drives with the Graph API.

    在我的情况下,问题是我试图访问的驱动器不是我的驱动器,而是绑定到另一个帐户 . 我可能有一些非常没有特权的帐户 .

    最后,查询此URL工作(在标头中正确设置了Bearer访问令牌)

    https://graph.microsoft.com/v1.0/users/itsupport@company.com/drive/root:/RootFolderName:/children
    

    我从网址获得了用户名

    https://someone-my.sharepoint.com/
    personal
    /itsupport_company_com     #<--- this is the drive owner
    /_layouts/15
    /onedrive.aspx?
    FolderCTID=0x012000908740EE6082C74E82DD6BBFB737D5D5
    &id=%2Fpersonal%2Fitsupport%5Fcompany%5Fcom%2FDocuments%2FReportsFolder
    

相关问题