簡體   English   中英

如何從OneDrive API獲取共享和下載鏈接

[英]How can I get share and download links from OneDrive API

我正在使用OneDrive JS Picker,並希望獲得下載和共享的價值。 文檔中的示例列出了用管道分隔的action參數的選項。 我希望使用按位運算符來合並這些值(例如

action: "share | download"

但這似乎既不允許webUrl值也不允許下載URL(@ microsoft.graph.downloadUrl)...其他人是否能夠做到這一點? 還是有一種方法可以使用共享URL(webUrl)獲取下載URL,以便我們可以獲取文件的文本內容?

我知道有REST服務可用,但鑒於該頁面頂部的消息,該服務可能已被棄用:

本文檔已存檔,不再維護。

但是如果仍然可以使用,也許我們可以用它來下載文件...如果可以,我可以將文件ID放在該下載URL和訪問令牌中嗎?

我能夠在本地托管OneDrive.js文件 ,取消最小化並修改下面的行(第104行)以使downloadUrl包含在文件的所有查詢中。 這樣就可以獲取shareUrl和downloadUrl。

e.DEFAULT_QUERY_ITEM_PARAMETER = "expand=thumbnails&select=id,name,size,webUrl,folder,@content.downloadUrl";

對不起,誤導了管道標志。 實際上,目前我們每個請求只允許執行一個操作,例如(操作:“查詢”)。 doc中的管道符號用英語而不是代碼表示“或”。

在回答之前,我想澄清一下webUrl和shareUrl之間的區別。

  • 您在響應的“ webUrl”屬性中看到的webUrl是指向資源在線的url,需要用戶登錄才能看到它。

  • 一個shareUrl包含許可,擁有該鏈接的每個人都可以根據用戶的配置查看/編輯該許可。

JS Picker

如果您希望同時返回下載鏈接和webUrl,則應該很容易:

{
    action: "query",
    advanced: {queryParameters: "select=id,name,webUrl,@content.downloadUrl"}
}

如果要同時返回下載鏈接和共享鏈接,則不支持。

API

為了使用API​​實現此目的,您可以轉到新的API頁面: https : //dev.onedrive.com/items/get.htm

並獲得已共享鏈接的項目應為

GET /v1.0/drive/items/<item-id>?select=id,name,@content.downloadUrl,webUrl&expand=permissions

所有已經共享的鏈接都應在權限數組對象中返回。

如果沒有共享鏈接,並且需要創建共享鏈接,則應嘗試https://dev.onedrive.com/items/sharing_createLink.htm

雖然它不返回webUrl並下載回URL,所以您需要額外的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM