Как получить ссылку на предварительный просмотр рабочего документа из MS Graph - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь получить ссылку для предварительного просмотра последних документов через MS Graph. К сожалению, ссылка, которую возвращает конечная точка, не работает.

Чтобы получить информацию о файле, я сначала звоню GET https://graph.microsoft.com/beta/me/drive/recent. Затем я копирую идентификатор диска и идентификатор документа из свойства parentReference.

Чтобы получить ссылку для предварительного просмотра, я использую конечную точку POST https://graph.microsoft.com/beta/drives/<DriveID>/items/<DocumentID>/preview и это работает нормально. Но когда я нажимаю на ссылку, я получаю сообщение об ошибке «Этот элемент может не существовать или больше недоступен». Документ существует в SharePoint, в противном случае он не будет отображаться в разделе «последние документы». URL выглядит так: https://www.onedrive.com/embed?webUrl=xyz.sharepoint.com/sites/nameOfTheSite/docLibName&id=sites/nameOfTheSite/DocLibName&embed=xxx&authToken=xxx

Я ожидаю, что ответ конечной точки /preview должен вернуть рабочий URL. Нужно ли настраивать некоторые параметры на O365?

Большое спасибо

1 Ответ

0 голосов
/ 24 января 2019

Ссылка для встраивания (preview) в вашем примере не выглядит действительной , поскольку параметр id относится к контейнеру (библиотека): sites/nameOfTheSite/DocLibName. Это не поддерживается, вместо этого ссылка для вставки должна ссылаться на файл

Скорее всего, проблема связана с itemId:

https://graph.microsoft.com/beta/drives/<DriveID>/items/<DocumentID>/preview
                                                        ^^^^^^^^^^^^   

в вашем примере это похоже на библиотеку, а не на файл. Убедитесь, что указан правильный itemId.

Например, конечная точка https://graph.microsoft.com/v1.0/me/drive/recent возвращает следующую полезную нагрузку:

{
   "value" : {
       //another properties are omitted for a clarity
       //... 
       "remoteItem": {
           "id": "01ECKZLCWSR7F76B64KZFL7I3QGZVPJELU"
           //...   
            "parentReference": {
                "driveId": "b!79yKq-2MdkSDnQ7_1Pf3FOkRyDCajpRIvqtA7UrsEO-vu3D_qkpaT50Y6CMcSmFv",
                "driveType": "documentLibrary",
                "id": "01ECKZLCV6Y2GOVW7725BZO354PWSELRRZ"
            },
       }
   }
}

, где

  • remoteItem.Id - соответствует идентификатору элемента для файла
  • remoteItem.parentReference.driveId - соответствует идентификатору привода

Не путайте с remoteItem.parentReference.Id, что соответствует к номеру элемента библиотеки

...