1

Trying to search Sharepoint files using Microsoft Graph api我知道,訪問sharepoint我需要省略'我'並使用端點。使用GRAPH API從Sharepoint刪除文件

https://graph.microsoft.com/v1.0/drive/root

但是,當我按照文件在https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/item_delete,我得到錯誤代碼「未認證」作爲響應。

我能夠使用上述方法從OneDrive中刪除文件,但不能從sharepoint中刪除。什麼是可能的解決方案?

回答

0

您是否在請求頭中提供訪問令牌?

https://graph.microsoft.io/en-us/docs/authorization/app_authorization

您需要提供它的每個請求要執行:

響應正文包含訪問 令牌(的access_token)一個JSON格式的字符串。您需要將此令牌提供給任何後續的 HTTP請求以訪問Microsoft Graph API資源。

+0

是的,我在我的請求頭提供訪問令牌。此外,我試圖直接從https://graph.microsoft.io/en-us/graph-explorer#提供的圖形瀏覽器執行相同的操作。它在那裏也不起作用 –

+0

@AjayThomas,你能不能請求你正在執行的請求? –

+0

我正在執行的請求是這樣的(從圖形資源管理器提供): DELETE https://graph.microsoft.com/v1.0/drive/items/01LKBWIO27DTDXSC24SFE2PGMUPMNRGXFE 如果我對一個驅動器做了同樣的事情(由在v1.0之後添加'me'標籤,並相應地使用item id,它會起作用,文件被刪除)。我懷疑它與權限有關。我試圖改變我試圖刪除的文件的權限但無濟於事 –

1

以下是Drives API的工作原理 - 每個用戶都可以訪問多個驅動器。 OneDrive for Business只是其中一個驅動器。每個SharePoint文檔庫也是一個驅動器。

通常,驅動器的訪問時間爲/drives/<drive-id>,因爲參考頁上的第二個示例顯示爲 - https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/drive_get

OneDrive for Business可作爲便捷的快捷方式訪問爲/me/drive

只需/drive指向根網站集合中的Shared Documents文檔庫。由於參考頁面沒有說明應該返回哪個驅動器,因此我會遠離這個API,直到它被記錄爲止。如果您嘗試訪問的項目不存在,則很容易出錯。

要解除自己:

  1. 確保您要刪除的文件是在根的SharePoint網站集的Shared Documents文件夾。
  2. 確保代表您的應用程序所代表的用戶有權刪除所需文件夾中的文件。
  3. 確保您正在訪問正確的驅動器。當您收到驅動器項目時,將會有一個parentReference屬性,其中包含driveId子屬性。然後,要訪問該項目,您可以執行/drives/<drive-id>/items/<item-id>
+0

您建議的答案點數: 1)我將所需用戶添加到組中:共享點的團隊網站所有者 2)我確定我是訪問正確的驅動器和項目(文件),因爲我能夠獲得項目屬性,我也能夠下載該項目也 儘管上述步驟,我仍然收到錯誤代碼'未經驗證'作爲迴應 –

+0

我有兩個問:1 )你可以跟蹤http請求和響應,例如與小提琴手。在共享公共雲驅動器之前等待1小時(訪問令牌到期)。 2)添加'Sites.ReadWrite.All'權限到你的應用程序,並讓我知道是否有任何改變。 –

+0

與你的詢問相關2,我不完全清楚。當你說添加權限是否意味着在我的應用程序中配置Microsoft Graph應用程序的權限以啓用Sites.ReadWrite.All(這是「在所有網站集中讀寫項目」)?因爲在那裏我只能看到'讀取所有網站集中的項目'選項。 我有這種感覺,我失去了一些東西。 –