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 :
- 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('+','-');
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.