1

Von Trying to search Sharepoint files using Microsoft Graph api Ich weiß, dass für den Zugriff auf Sharepoint ich 'Ich' weglassen und den Endpunkt verwenden muss.Löschen von Dateien aus Sharepoint mit GRAPH API

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

Aber wenn ich in der Dokumentation unter https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/item_delete folgen, erhalte ich Fehlercode ‚authentifiziert‘ als Antwort.

Ich bin in der Lage, Dateien aus OneDrive mit der obigen Methode, aber nicht aus Sharepoint zu löschen. Was könnte eine mögliche Lösung sein?

Antwort

0

Liefern Sie das Zugriffs-Token in Ihrem Anfrage-Header?

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

Sie müssen sie liefern für jede Anforderung die Sie ausführen möchten:

Die Antwortkörper den Zugang Token (access_token), die ein JSON-Format-String ist. Sie müssen dieses Token allen folgenden HTTP-Anforderungen für den Zugriff auf Microsoft Graph-API-Ressourcen bereitstellen.

+0

Ja, ich gebe das Access-Token in meinem Anfrage-Header. Außerdem habe ich versucht, die gleiche Operation direkt aus dem Graph Explorer unter https://graph.microsoft.io/en-us/graph-explorer# auszuführen. Es funktioniert auch nicht dort –

+0

@AjayThomas, konnten Sie bitte die Bitte zeigen, die Sie durchführen? –

+0

Die Anforderung, die ich ausführe, ist diese (vom Graph Explorer bereitgestellt): LÖSCHEN https://graph.microsoft.com/v1.0/drive/items/01LKBWIO27DTDXSC24SFE2PGMUPMNRGXFE Wenn ich das gleiche mit einem Laufwerk (durch Fügen Sie das "me" -Tag nach v1.0 hinzu und verwenden Sie die Item-ID entsprechend, es funktioniert und die Datei wird gelöscht.Ich vermute, dass es etwas mit Berechtigungen zu tun hat. Ich habe versucht, die Erlaubnis der Datei zu ändern, die ich versuchte zu löschen, aber vergebens –

1

So funktioniert die Drives API - jeder Benutzer hat Zugriff auf mehrere Laufwerke. Das OneDrive for Business ist nur eines der Laufwerke. Jede SharePoint-Dokumentbibliothek ist auch ein Laufwerk.

Im Allgemeinen wird auf Laufwerke als /drives/<drive-id> zugegriffen, wie das zweite Beispiel auf der Referenzseite zeigt - https://graph.microsoft.io/en-us/docs/api-reference/v1.0/api/drive_get.

Auf das OneDrive for Business kann als eine bequeme Abkürzung wie /me/drive zugegriffen werden.

Einfach /drive verweist auf die Dokumentbibliothek Shared Documents aus der Stammwebsitesammlung. Da auf der Referenzseite nicht angegeben wird, welches Laufwerk zurückgegeben werden soll, halte ich mich von dieser API fern, bis sie dokumentiert wird. Wenn das Objekt, auf das Sie zugreifen möchten, nicht vorhanden ist, ist es natürlich, einen Fehler zu erhalten.

dir zum Entsperren:

  1. Sicherstellen, dass die Datei, die Sie im Shared Documents Ordner der Stammsharepoint-Websitesammlung zu löschen versuchen.
  2. Vergewissern Sie sich, dass der Benutzer, für den Ihre App tätig ist, über Berechtigungen zum Löschen von Dateien im gewünschten Ordner verfügt.
  3. Stellen Sie sicher, dass Sie auf das richtige Laufwerk zugreifen. Wenn Sie ein Laufwerk Element erhalten, gibt es eine parentReference -Eigenschaft, die eine driveId Untereigenschaft enthält. Um auf diesen Artikel zuzugreifen, können Sie /drives/<drive-id>/items/<item-id> tun.
+0

Antworten zu den Punkten, die Sie vorschlugen: 1) Ich fügte den gewünschten Benutzer der Gruppe hinzu: Team-Standortbesitzer von sharepoint 2) bin ich sicher bin ich Zugriff auf das richtige Laufwerk und Artikel (Datei), da ich in der Lage bin, die Artikeleigenschaften zu erhalten und ich kann den Artikel auch herunterladen Trotz der oben genannten Schritte bekomme ich immer noch Fehlercode 'nicht authentifiziert' als Antwort –

+0

Ich habe zwei Fragen: 1) Können Sie eine Spur von der HTTP-Anfrage und Antwort, z mit Fiddler. Warten Sie 1 Stunde (damit das Zugriffstoken abläuft), bevor Sie es auf einem öffentlichen Cloud-Laufwerk freigeben. 2) Fügen Sie Ihrer App die Berechtigung 'Sites.ReadWrite.All' hinzu und lassen Sie mich wissen, ob sich etwas ändert. –

+0

In Bezug auf Ihre Frage 2, ich bin nicht ganz klar. Wenn Sie die Berechtigung zum Hinzufügen angeben, bedeutet dies, dass die Berechtigung zum Konfigurieren der Microsoft Graph-Anwendung in meiner App aktiviert ist, um Sites.ReadWrite.All zu aktivieren (also "Elemente in allen Websitesammlungen lesen und schreiben")? Denn dort sehe ich nur die Option 'Elemente in allen Websitesammlungen lesen'. Ich habe das Gefühl, dass mir etwas fehlt. –