簡體   English   中英

使用文檔 ID 通過 msgraph 檢索文檔

[英]Retrieve Document through msgraph using Document ID

我在我的 Office 365 Sharepoint 集合中啟用了文檔 ID 功能。 我想將文檔 ID 存儲在我們的 php 服務器上,然后允許服務器使用文檔 ID 下載文檔。

我已經成功設置了 microsoft-sdk-php(使用應用程序僅租戶權限)和 phpSPO 庫(使用 microsoft graph api 接口)。 在這兩種情況下,我都無法弄清楚如何使用文檔 ID 來檢索文檔的實際名稱和路徑。 如果我使用文件的標准名稱/路徑,我可以成功地將它下載到服務器。

使用 microsoft-sdk-php 庫,我嘗試搜索驅動器項目,但無法確定如何通過文檔 ID 進行搜索。 Microsoft Graph API上關於使用 DriveItems/Search(使用過濾器 q="...")的文檔似乎非常不完整。 在嘗試使用 DocId、_dlc_DocId 和其他變體進行過濾時,我嘗試了多種變體(同樣,文檔中並不清楚該字段的確切名稱)。

我也嘗試使用 curl 來捕獲文檔 ID URL 的重定向 (xxxxxx.sharepoint.com/_layouts/15/DocIdRedir.aspx?ID=XXXXXXX-2222222222-86),但我要么收到禁止錯誤,要么無法正確重定向。

我還研究過使用查詢來搜索共享點驅動器,但我沒有成功 - 部分原因是我無法確定“文檔 ID”字段的存儲位置和方式。

我想我可以為你回答這個問題。 我自己也在為此苦苦掙扎,所以對於同一條船上的其他人來說。 我在 .NET 中工作,但同樣適用:

您要查找的文檔 ID(和其他“屬性”數據)實際上並不是一個驅動器的一部分,因此您無法通過正常的 DriveItem 端點找到它。 此數據實際上是存儲在共享點列表中其他位置的共享點元數據。 在這種情況下,您想要的數據存儲在 sharepoint 上的系統列表中。 我使用的步驟是:

為此,您將需要您的共享點站點 ID 和庫的 ID 或名稱。 要獲取共享點列表,請使用此 API 調用:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}
or
GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-title}

現在您有了列表,您可以檢索列表項。 請注意,您需要擴展字段:

GET https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items?expand=fields

上述調用應在“字段”屬性中返回您需要的元數據。 文檔 id 字段專門存儲在名為_dlc_DocIdUrl的字段中。

我希望這對您或將來的其他人有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM