Zugriff auf freigegebene DriveItems

Namespace: microsoft.graph

Verwenden Sie für den Zugriff auf ein freigegebenes DriveItem-Element oder eine Sammlung freigegebener Elemente eine shareId oder Freigabe-URL.

Um eine Freigabe-URL mit dieser API verwenden zu können, muss die App die URL in ein Freigabetoken konvertieren.

Berechtigungen

Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie im Artikel zum Thema Berechtigungen.

Berechtigungstyp Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto) Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Files.ReadWrite, Files.ReadWrite.All
Anwendung Files.ReadWrite.All, Sites.ReadWrite.All

HTTP-Anforderung

GET /shares/{shareIdOrEncodedSharingUrl}

Pfadparameter

Parametername Wert Beschreibung
shareIdOrEncodedSharingUrl string Erforderlich. Ein Freigabetoken, wie es von der API oder einer ordnungsgemäß codierten Freigabe-URL zurückgegeben wird.

Codieren von Freigabe-URLs

Verwenden Sie zum Codieren einer Freigabe-URL die folgende Logik:

  1. Als Erstes codieren Sie die URL mithilfe von Base64.
  2. Konvertieren Sie das Base64-codierte Ergebnis in das base64url-Format ohne Füllzeichen, indem Sie =-Zeichen vom Ende des Werts entfernen und / durch _ sowie + durch - ersetzen.
  3. Fügen Sie u! an den Anfang der Zeichenfolge an.

Beispiel für die Codierung einer URL in C#:

string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

Optionale Anforderungsheader

Name Typ Beschreibung
Prefer string Optional. Legen Sie einen der prefer unten aufgeführten Werte fest.

Kopfzeilenwerte bevorzugen

Name Beschreibung
redeemSharingLink Wenn shareIdOrEncodedSharingUrl ein Freigabelink ist, gewähren Sie dem Aufrufer dauerhaften Zugriff auf das Element.
redeemSharingLinkIfNecessary Identisch mit "redeemSharingLink", aber der Zugriff wird nur für die Dauer dieser Anforderung gewährt.

redeemSharingLink sollte als äquivalent mit dem Aufrufer betrachtet werden, der zum Freigabelink im Browser navigiert (wobei die Freigabegeste akzeptiert wird), während "redeemSharingLinkIfNecessary" für Szenarien vorgesehen ist, in denen die Absicht besteht, einfach die Metadaten des Links anzuzeigen.

Antwort

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und eine sharedDriveItem-Ressource im Antworttext zurückgegeben.

Beispiel

Anforderung

Im Folgenden finden Sie ein Beispiel für die Anforderung zum Abrufen eines freigegebenen Elements:

GET /shares/{shareIdOrEncodedSharingUrl}

Antwort

Nachfolgend sehen Sie ein Beispiel der Antwort.

HTTP/1.1 200 OK
Content-type: application/json

{
  "id": "B64397C8-07AE-43E4-920E-32BFB4331A5B",
  "name": "contoso project.docx",
  "owner": {
    "user": {
      "id": "98E88F1C-F8DC-47CC-A406-C090248B30E5",
      "displayName": "Ryan Gregg"
    }
  }
}

Direkter Zugriff auf das freigegebene Element

Obwohl das SharedDriveItem-Element nützliche Informationen enthält, möchten die meisten Apps direkt auf das freigegebene DriveItem-Element zugreifen. Die SharedDriveItem-Ressource umfasst root- und items-Beziehungen, die innerhalb des Bereichs des freigegebenen Elements auf die Inhalte zugreifen können.

Beispiel (einzelne Datei)

Anforderung

Durch das Anfordern der driveItem-Beziehung wird das DriveItem-Element zurückgegeben, das freigegeben wurde.

GET /shares/{shareIdOrUrl}/driveItem

Antwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
  "name": "contoso project.docx",
  "eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
  "file": {},
  "size": 109112
}

Beispiel (freigegebener Ordner)

Anforderung

Durch das Anfordern der driveItem-Beziehung und das Erweitern der children-Sammlung wird das freigegebene DriveItem-Element mit Dateien im freigegebenen Ordner zurückgegeben.

GET /shares/{shareIdOrUrl}/driveItem?$expand=children

Antwort

HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": "9FFFDB3C-5B87-4062-9606-1B008CA88E44",
  "name": "Contoso Project",
  "eTag": "2246BD2D-7811-4660-BD0F-1CF36133677B,1",
  "folder": {},
  "size": 10911212,
  "children": [
    {
      "id": "AFBBDD79-868E-452D-AD4D-24697D4A4044",
      "name": "Propsoal.docx",
      "file": {},
      "size": 19001
    },
    {
      "id": "A91FE90A-2F2C-4EE6-B412-C4FFBA3F71A6",
      "name": "Update to Proposal.docx",
      "file": {},
      "size": 91001
    }
  ]
}

Fehlerantworten

Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie im Thema Fehlerantworten.

Bemerkungen

  • Bei OneDrive for Business und SharePoint erfordert die Freigabe-API immer eine Authentifizierung und kann nicht verwendet werden, um auf anonym freigegebene Inhalte ohne Benutzerkontext zuzugreifen.