2016-03-05 183 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}/

相關問題