Как найти идентификатор DriveItem, учитывая только URL-адрес документа?

Мне нужно найти DriveItem из API Microsoft Graph, имея только URL-адрес документа в таком формате:

https://tenant.sharepoint.com/sites/somesite/somefolder/somedocument.doc

Я знаю, что можно сделать наоборот, например. получить URL-адрес документа из DriveItem, но как мне получить DriveItem, если у меня есть только URL-адрес документа?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
70
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для примера я создал папку на сайте SharePoint и загрузил в нее документ:

Чтобы получить идентификатор элемента диска, используя только URL-адрес документа через API Microsoft Graph, проверьте следующее:

https://graph.microsoft.com/v1.0/sites/SiteID/drive/root/search(q='Document.docx')

Чтобы убедиться в том же, я передал идентификатор диска и идентификатор элемента диска, чтобы проверить, получает ли он документ:

https://graph.microsoft.com/v1.0/drives/DriveID/items/DriveItemID

Если у вас нет идентификатора сайта, вы можете передать имя сайта, чтобы получить идентификатор сайта:

https://graph.microsoft.com/v1.0/sites?search=YourSiteName

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

Jan Martin 23.07.2024 01:11

Вы можете получить идентификатор сайта по последнему запросу, который я опубликовал в ответе.

Rukmini 23.07.2024 01:18

Рад узнать, что другое решение сработало для вас :)

Rukmini 23.07.2024 01:22
Ответ принят как подходящий

Вы можете использовать API поиска, фильтровать driveItem тип объекта и указывать URL-адрес документа в queryString

POST https://graph.microsoft.com/v1.0/search/query

{
    "requests": [
        {
            "entityTypes": [
                "driveItem"
            ],
            "query": {
                "queryString": "path:\"https://tenant.sharepoint.com/sites/somesite/somefolder/somedocument.doc\""
            }
        }
    ]
}

Ответ будет содержать свойство resource с внутренним id, которое driveItemId вам нужно. Свойство parentReference содержит дополнительные сведения, например driveId.

Другой способ — получить файл по относительному пути, но он требует знания siteId и driveId, связанных с определенной библиотекой документов.

GET https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/root:/somefolder/somedocument.doc:/

В 2024 году вышеописанное работало без префикса path:. с этим префиксом он вернул 0 результатов на конечной точке версии 1.0.

Ramesh 30.07.2024 17:36

Другие вопросы по теме