Элемент графического устройства Microsoft webUrl не обеспечивает такую ​​же возможность просмотра, как OneDrive - PullRequest
0 голосов
/ 02 мая 2019

Элемент привода графа Microsoft webUrl предоставляет URL-адрес представления элемента диска в соответствии с документацией: "URL, который отображает ресурс в браузере. Только для чтения."

Мы обнаружили, что URL, возвращенный для изображений и видео, выполняет одно из двух действий:

  • возвращает HTML-страницу с тегом img или video, который будет отображать / воспроизводить файл
  • скачать файл

Например, загружаются файлы avi, но если мы перейдем в OneDrive и выполним «предварительный просмотр», то откроется средство просмотра, которое воспроизводит видео.

Есть ли способ получить URL-адрес этого вида через API, а не то, что дает webUrl. URL, кажется, в такой форме: https://jostledev -my.sharepoint.com / личный / ххх / _layouts / 15 / onedrive.aspx? FolderCTID = ууу & ID =% 2Fpersonal% 2Fxxx% 2FDocuments% 2FJostle% 20Storage% 2FWildlife% 2Ewmv & Родитель =% 2Fpersonal% 2Fxxx% 2FDocuments % 2FJostle% 20Storage

1 Ответ

0 голосов
/ 02 мая 2019

Действительно 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}`;    
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...