Zugriff auf freigegebene DriveItems

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 folgenden Berechtigungen ist erforderlich, um diese API aufzurufen. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie unter 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
sharingTokenOrUrl 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('+','-');

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.