Accès aux objets DriveItem partagés

Espace de noms: microsoft.graph

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.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
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
shareIdOrEncodedSharingUrl 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 :

  1. Tout d’abord, utilisez base 64 pour encoder l’URL.
  2. 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 -.
  3. 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('+','-');

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.
Préférence Facultatif. Chaîne. Définissez sur prefer l’une des valeurs décrites ci-dessous.

Préférer les valeurs d’en-tête

Nom Description
redeemSharingLink Si shareIdOrEncodedSharingUrl est un lien de partage, accordez à l’appelant un accès durable à l’élément
redeemSharingLinkIfNecessary Identique à redeemSharingLink, mais l’accès est garanti uniquement pour la durée de cette demande

redeemSharingLink doit être considéré comme équivalent à l’appelant qui accède au lien de partage dans le navigateur (acceptant le mouvement de partage), tandis que redeemSharingLinkIfNecessary est destiné aux scénarios où l’intention est simplement d’examiner les métadonnées du lien.

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

L’exemple suivant montre une demande de récupération d’un élément partagé :

GET /shares/{shareIdOrEncodedSharingUrl}

Réponse

L’exemple suivant illustre la 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é

Bien que l’objet SharedDriveItem contienne des informations utiles, la plupart des applications souhaitent accéder directement à l’élément DriveItem partagé. La ressource SharedDriveItem inclut une racine et des relations d’éléments 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 retournées, consultez l’article Réponses aux erreurs.

Remarques

  • Pour OneDrive Entreprise et SharePoint, l’API Partages nécessite toujours une authentification et ne peut pas être utilisée pour accéder de manière anonyme au contenu partagé sans contexte utilisateur.