Zugriff auf freigegebene DriveItemsAccessing shared DriveItems

Verwenden Sie für den Zugriff auf ein freigegebenes DriveItem-Element oder eine Sammlung freigegebener Elemente eine shareId oder Freigabe-URL.Access a shared DriveItem or a collection of shared items by using a shareId or sharing URL.

Um eine Freigabe-URL mit dieser API verwenden zu können, muss die App die URL in ein Freigabetoken konvertieren.To use a sharing URL with this API, your app needs to transform the URL into a sharing token.

BerechtigungenPermissions

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.One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

BerechtigungstypPermission type Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)Permissions (from least to most privileged)
Delegiert (Geschäfts-, Schul- oder Unikonto)Delegated (work or school account) Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.AllFiles.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All
Delegiert (persönliches Microsoft-Konto)Delegated (personal Microsoft account) Files.ReadWrite, Files.ReadWrite.AllFiles.ReadWrite, Files.ReadWrite.All
AnwendungApplication Files.ReadWrite.All, Sites.ReadWrite.AllFiles.ReadWrite.All, Sites.ReadWrite.All

HTTP-AnforderungHTTP request

GET /shares/{shareIdOrEncodedSharingUrl}

PfadparameterPath parameters

ParameternameParameter Name WertValue BeschreibungDescription
shareIdOrEncodedSharingUrlshareIdOrEncodedSharingUrl string Erforderlich.Required. Ein Freigabetoken, wie es von der API oder einer ordnungsgemäß codierten Freigabe-URL zurückgegeben wird.A sharing token as returned by the API or a properly encoded sharing URL.

Codieren von Freigabe-URLsEncoding sharing URLs

Verwenden Sie zum Codieren einer Freigabe-URL die folgende Logik:To encode a sharing URL, use the following logic:

  1. Als Erstes codieren Sie die URL mithilfe von Base64.First, use base64 encode the URL.
  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.Convert the base64 encoded result to unpadded base64url format by removing = characters from the end of the value, replacing / with _ and + with -.)
  3. Fügen Sie u! an den Anfang der Zeichenfolge an.Append u! to be beginning of the string.

Beispiel für die Codierung einer URL in C#:As an example, to encode a 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 AnforderungsheaderOptional request headers

NameName TypType BeschreibungDescription
PreferPrefer stringstring Optional.Optional. Legen Sie einen der unten prefer dokumentierten Werte fest.Set to one of the prefer values documented below.

Vorzugs Werte für KopfzeilenPrefer header values

NameName BeschreibungDescription
redeemSharingLinkredeemSharingLink Wenn es sich bei der shareIdOrEncodedSharingUrl um einen Freigabe Link handelt, gewähren Sie dem Anrufer dauerhaft Zugriff auf das Element.If the shareIdOrEncodedSharingUrl is a sharing link, grant the caller durable access to the item
redeemSharingLinkIfNecessaryredeemSharingLinkIfNecessary Identisch mit redeemSharingLink, aber der Zugriff wird nur garantiert für die Dauer dieser Anforderung erteilt.Same as redeemSharingLink, but access is only guaranteed to be granted for the duration of this request

redeemSharingLink sollte als Äquivalent für den Anrufer angesehen werden, der zum Freigabe Link im Browser navigiert (die Freigabe Geste wird akzeptiert), wohingegen redeemSharingLinkIfNecessary für Szenarien vorgesehen ist, in denen die Absicht einfach ist, auf die Verknüpfung zu blicken. Metadaten.redeemSharingLink should be considered equivalent to the caller navigating to the sharing link the browser (accepting the sharing gesture), whereas redeemSharingLinkIfNecessary is intended for scenarios where the intention is simply to peek at the link's metadata.

AntwortResponse

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und eine sharedDriveItem-Ressource im Antworttext zurückgegeben.If successful, this method returns a 200 OK response code and a sharedDriveItem resource in the response body.

BeispielExample

AnforderungRequest

Im Folgenden finden Sie ein Beispiel für die Anforderung zum Abrufen eines freigegebenen Elements:Here is an example of the request to retrieve a shared item:

GET /shares/{shareIdOrEncodedSharingUrl}

AntwortResponse

Nachfolgend sehen Sie ein Beispiel der Antwort.Here is an example of the response.

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 ElementAccess the shared item directly

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.While the SharedDriveItem contains some useful information, most apps will want to directly access the shared DriveItem. The SharedDriveItem resource includes a root and items relationships which can access content within the scope of the shared item.

Beispiel (einzelne Datei)Example (single file)

AnforderungRequest

Durch das Anfordern der driveItem-Beziehung wird das DriveItem-Element zurückgegeben, das freigegeben wurde.By requesting the driveItem relationship, the DriveItem that was shared will be returned.

GET /shares/{shareIdOrUrl}/driveItem

AntwortResponse

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)Example (shared folder)

AnforderungRequest

Durch das Anfordern der driveItem-Beziehung und das Erweitern der children-Sammlung wird das freigegebene DriveItem-Element mit Dateien im freigegebenen Ordner zurückgegeben.By requesting the driveItem relationship and expanding the children collection, the DriveItem that was shared will be returned along with the files within the shared folder.

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

AntwortResponse

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
    }
  ]
}

FehlerantwortenError Responses

Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie im Thema Fehlerantworten.Read the Error Responses topic for more information about how errors are returned.

BemerkungenRemarks

  • 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.For OneDrive for Business and SharePoint, the Shares API always requires authentication and cannot be used to access anonymously shared content without a user context.