2016-03-05 182 views
0

我有一个场景,其中userA在OneDrive for Business上与userB共享文件。他们都属于同一个Office365租户。使用OneDrive for Business API以编程方式下载共享文件

有没有办法以编程方式检索使用用户B身份(OAuth访问令牌)的共享文件内容?我已经尝试使用2.0 API Syntaxt,它适用于userA,但是当尝试使用userB访问令牌执行此请求时,即使文件与userB共享,我也会收到401错误。

https://{tenantid}-my.sharepoint.com/_api/v2.0/drives/{driveId}/items/{itemId}/ 

或者,也许有一种方法,我可以使用Azure的AD应用授权权限访问代表其具有驱动器Id和的itemId所有者的这个文件?

回答

1

据我所知,该功能尚未支持。

UserVoice上有此功能请求,您可以对其进行投票。

+0

THX @Jeffrey,你知道,如果使用应用程序委派权限是在OneDrive访问文件业务的选项? –

+0

不,我不认为应用程序委托权限可以实现这一点,因为您无法指定要访问的用户文件夹。 –

+0

截至2016年6月29日,这应该是可能的。但是,我没有这样做。 –

0

至于2016年3月,只有这样,我能够从OneDrive编程方式检索共享文件内容业务是由:

  1. 创建SharePoint提供托管插件与FullControl许可整个租客
  2. 注册下HTTPS应用程序:// {} tenantid -my.sharepoint.com/_layouts/15/AppRegNew.aspx
  3. 创建在SharePoint Online上的应用程序目录和发布应用到目录
  4. 至少一个的SharePoint安装的应用程序现场coll从http://blogs.msdn.com/b/vesku/archive/2015/01/05/customizing-onedrive-for-business-sites-with-app-model.aspx

    Uri url = new Uri("https://{tenantid}-my.sharepoint.com/personal/{user}"); string realm = TokenHelper.GetRealmFromTargetUrl(url); var token = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal,url.Authority, realm).AccessToken;

  5. 令牌变量包含的accessToken可在OneDrive被用作承载令牌业务API请求租户
  6. 使用ClientSecret和客户端Id执行下面的代码内挠度(例如从其他用户的OneDrives'获取文件)。

https://{tenantid}-my.sharepoint.com/_api/v2.0/drives/{driveId}/items/{itemId}/

相关问题