Accès aux objets DriveItem partagés
Accédez à un élément DriveItem partagé ou à une collection d’éléments partagés à l’aide d’un élément shareId ou d’une URL de partage.
Pour utiliser une URL de partage avec cette API, votre application doit transformer l’URL en un jeton de partage.
Autorisations
L’une des autorisations suivantes est requise pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.
Type d’autorisation | Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins) |
---|---|
Déléguée (compte professionnel ou scolaire) | Files.ReadWrite, Files.ReadWrite.All, Sites.ReadWrite.All |
Déléguée (compte Microsoft personnel) | Files.ReadWrite, Files.ReadWrite.All |
Application | Files.ReadWrite.All, Sites.ReadWrite.All |
Requête HTTP
GET /shares/{shareIdOrEncodedSharingUrl}
Paramètres du chemin d’accès
Nom de paramètre | Valeur | Description |
---|---|---|
sharingTokenOrUrl | string |
Obligatoire. Un jeton de partage renvoyé par l’API ou une URL de partage correctement codée. |
Codage des URL de partage
Pour coder une URL de partage, suivez la logique suivante :
- Tout d’abord, utilisez base 64 pour encoder l’URL.
- Convertissez le résultat encodé en base 64 au format base64url non complété : supprimez les caractères
=
de la fin de la valeur, remplacez/
par_
et+
par-
. - Ajoutez
u!
au début de la chaîne.
Par exemple, pour coder une URL en 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('+','-');
Réponse
Si elle réussit, cette méthode renvoie un code de réponse 200 OK
et une ressource sharedDriveItem mise à jour dans le corps de la réponse.
Exemple
Demande
Voici un exemple de demande pour récupérer un élément partagé :
GET /shares/{shareIdOrEncodedSharingUrl}
Réponse
Voici un exemple de réponse.
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"
}
}
}
Accéder directement à l’élément partagé
La ressource SharedDriveItem contient des informations utiles mais la plupart des applications souhaiteront accéder directement à l’élément DriveItem partagé. La ressource SharedDriveItem comprend des relations root et items qui peuvent accéder au contenu dans l’étendue de l’élément partagé.
Exemple (fichier unique)
Demande
Si vous demandez la relation driveItem, la ressource DriveItem partagée sera renvoyée.
GET /shares/{shareIdOrUrl}/driveItem
Réponse
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
}
Exemple (dossier partagé)
Demande
Si vous demandez la relation driveItem et que vous développez la collection children, la ressource DriveItem partagée sera renvoyée avec les fichiers dans le dossier partagé.
GET /shares/{shareIdOrUrl}/driveItem?$expand=children
Réponse
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
}
]
}
Réponses d’erreur
Pour plus d’informations sur la façon dont les erreurs sont renvoyées, voir Réponses d’erreur.
Remarques
- Pour Onedrive Entreprise et SharePoint, l’API Shares exige toujours une authentification et ne peut pas être utilisé pour les accès anonymes au contenu partagé sans contexte utilisateur.