![](/img/trans.png)
[英]How can I get the clientID and redirect URI to access files from onedrive in my angular application
[英]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.