2013-11-22 60 views
0

在Box API v1中,可以請求爲文件或文件夾創建共享鏈接,而不必關心需要什麼樣的共享。事實上,不可能要求特定類型的共享 - 您只是使用public_share方法並傳入目標類型(文件/文件夾)和目標標識以及可選的共享密碼。例如,在企業帳戶中,如果公開鏈接不被允許,這可能會導致最高訪問級別爲「公司」或「協作者」。如何在不指定共享類型的情況下使用Box Java SDK創建共享鏈接?

使用Box API v2,根據文檔here,您需要指定必須爲「open」,「company」或「collaborators」的訪問參數。

問題是,使用錯誤的類型可能會導致共享失敗。例如,在只允許協作者的文件夾/帳戶中,如果我要求「開放」共享,則會出現400錯誤。

我真正想要得到的結果與用戶點擊Box網站中的「Share」鏈接完全相同。也就是說,它應該啓用文件共享,但默認級別適當。

有沒有辦法與v2做到這一點,而管理員不必告訴我們他們對我們創建的共享鏈接的「首選」訪問級別?我使用的Java SDK,就像這樣:

BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject("open")); 

BoxItem item = itemsManager.createSharedLink(<ID>, req, BoxResourceType.FILE); 

感謝,

奔吉爾伯特

Smartsheet.com

回答

0

我想出瞭如何使這項工作。我需要在創建BoxSharedLinkRequestObject時,這樣的設置訪問空:**

BoxItemRequestObject req = BoxItemRequestObject.createSharedLinkRequestObject(BoxSharedLinkRequestObject.createSharedLinkRequestObject(null)); 

這不會產生完全相同的JSON作爲推薦(shared_link: {}),但它產生的JSON顯然是等價的: shared_link: { access: null }。我找不出任何方法來使用SDK生成一個空的shared_link對象 - 我必須有一個空的shared_link(根本不工作)或某些訪問字段的值。

0

只需設置訪問空集{}

所以你的要求應該是這樣的:

{"shared_link": {}} 
+0

我忘了提及我正在使用Box Java SDK。我修改了主題並編輯了我最初的問題以反映這一點。此外,我想出瞭如何使其工作,請參閱下面的答案。 –

相關問題