Действительно DriveItem
webUrl
свойство возвращает необработанный URL-адрес актива в One Drive.
Чтобы вернуть ссылку на страницу, Создайте ссылку для обмена Можно использовать конечную точку, например, запрос:
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
свойство содержит ссылку на страницу.
Обновление
Другой вариант - создать URL-адрес страницы из свойства DriveItem.webUrl
, например:
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}`;
}