Microsoft graph api Microsoft graph drive项webUrl不提供与OneDrive相同的查看功能
microsoft graph drive item webUrl根据文档提供驱动器项的视图url: “在浏览器中显示资源的URL。只读。” 我们发现为图像和视频返回的url执行以下两项操作之一:Microsoft graph api Microsoft graph drive项webUrl不提供与OneDrive相同的查看功能,microsoft-graph-api,Microsoft Graph Api,microsoft graph drive item webUrl根据文档提供驱动器项的视图url: “在浏览器中显示资源的URL。只读。” 我们发现为图像和视频返回的url执行以下两项操作之一: 返回包含img或视频标记的html页面,该标记将显示/播放该文件 下载该文件 例如,可以下载avi文件,但如果我们转到OneDrive进行“预览”,则会打开一个查看器来播放视频 有没有办法通过api而不是webUrl提供的内容来获取此视图url。url的格式似乎如下所示: 确实webUrl属性返回
- 返回包含img或视频标记的html页面,该标记将显示/播放该文件
- 下载该文件
webUrl
属性返回一个驱动器中资产的原始url
要返回指向页面的链接,可以使用端点,例如请求:
POST /me/drive/items/{item-id}/createLink
Content-type: application/json
{
"type": "view",
"scope": "anonymous"
}
应该返回以下响应
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#permission",
"@odata.type": "#microsoft.graph.permission",
"id": "34e2cb9c-bab6-4a60-b48b-f274af531ba5",
"roles": [
"read"
],
"link": {
"scope": "anonymous",
"type": "view",
"webUrl": "https://contoso-my.sharepoint.com/:v:/g/personal/jdoe_contoso_onmicrosoft_com/EXU29gb_xaZCjCNqN7F0_AMBqt9rXdrE_E6GLDoSNAFOFg"
}
}
其中link.webUrl
属性包含页面的链接
更新
另一个选项是从DriveItem.webUrl
属性构造页面url,例如:
function createPageLink(webUrl){
const oneDriveUrl = webUrl.substr(0,webUrl.indexOf('onmicrosoft_com') + 'onmicrosoft_com'.length);
var relUrl = webUrl.substr(webUrl.indexOf('/personal'))
const parentUrl = relUrl.split('/').slice(0, -1).join('/');
return `${oneDriveUrl}/_layouts/15/onedrive.aspx?id=${relUrl}&parent=${parentUrl}`;
}
谢谢你的重播。我们知道共享链接和预览()这两种方法都不适用于我们,因为我们要求url上的访问控制与底层文件的访问控制相同。在共享链接的情况下,作用域要么是匿名的,要么是比基础文件共享对象范围更广的组织。@user1452215,答案已更新(更新部分)