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 zu verwenden, muss die App die URL in ein Freigabetoken konvertieren.

Voraussetzungen

Einer der folgenden Bereiche ist erforderlich, um diese API auszuführen:

  • Files.ReadWrite

HTTP-Anforderung

GET /shares/{sharingIdOrUrl}

Anforderungstext

Geben Sie für diese Methode keinen Anforderungstext an.

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 https://graph.microsoft.com/v1.0/shares/{shareIdOrUrl}
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 root-Beziehung wird das DriveItem-Element zurückgegeben, das freigegeben wurde.

GET https://graph.microsoft.com/v1.0/shares/{shareIdOrUrl}/root
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 root-Beziehung und das Erweitern der children-Sammlung wird das freigegebene DriveItem-Element mit Dateien im freigegebenen Ordner zurückgegeben.

GET https://graph.microsoft.com/v1.0/shares/{shareIdOrUrl}/root?$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
    }
  ]
}

Konvertieren einer Freigabe-URL

Um auf eine Freigabe-URL unter Verwendung der shares-API zuzugreifen, muss die URL in ein Freigabetoken umgewandelt werden.

So wandeln Sie eine URL in ein Freigabetoken um:

  1. Codieren Sie die URL-Freigabe mithilfe von Base64.
  2. Konvertieren Sie die Base64-codierten Daten in das base64url-Format ohne Füllzeichen, indem Sie folgende Aktionen durchführen:
    1. Kürzen Sie nachgestellte =-Zeichen in der Zeichenfolge
    2. Ersetzen Sie unsichere URL-Zeichen mit einem entsprechenden Zeichen; ersetzen Sie / mit _ und + mit -.
  3. Fügen Sie u! an den Anfang der Zeichenfolge an.

Mit der folgenden C#-Methode wird beispielsweise eine Eingabezeichenfolge in eine Freigabetoken konvertiert:

string UrlToSharingToken(string inputUrl) {
  var base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(inputUrl));
  return "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');
}