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:
- Als Erstes codieren Sie die URL mithilfe von Base64.
- 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. - 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.