Partager via


driveItem : invite

Espace de noms: microsoft.graph

Envoyer une invitation de partage pour un élément driveItem. Une invitation de partage fournit des autorisations aux destinataires et, éventuellement, leur envoie un e-mail pour les informer que l’élément a été partagé.

Importante

  • Les autorisations ne peuvent pas être créées ou modifiées sur l’élément driveItem racine des lecteurs dont le type de personal lecteur est (OneDrive pour les particuliers).
  • Les nouveaux invités ne peuvent pas être invités à l’aide d’un accès d’application uniquement. Les invités existants peuvent être invités à l’aide de requêtes d’application uniquement.

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

Remarque

SharePoint Embedded nécessite l’autorisation FileStorageContainer.Selected d’accéder au contenu du conteneur. Cette autorisation est différente de celles mentionnées précédemment. En plus des autorisations Microsoft Graph, votre application doit disposer des autorisations de type de conteneur nécessaires pour appeler cette API. Pour plus d’informations, consultez Authentification et autorisation SharePoint Embedded.

Requête HTTP

POST /drives/{drive-id}/items/{item-id}/invite
POST /groups/{group-id}/drive/items/{item-id}/invite
POST /me/drive/items/{item-id}/invite
POST /sites/{siteId}/drive/items/{itemId}/invite
POST /users/{userId}/drive/items/{itemId}/invite

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.

Corps de la demande

Dans le corps de la demande, indiquez un objet JSON avec les paramètres suivants.

{
  "requireSignIn": false,
  "sendInvitation": false,
  "roles": [ "read | write"],
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" },
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "message": "string"
}
Paramètre Type Description
destinataires collection driveRecipient Collection de destinataires qui reçoivent l’accès et l’invitation de partage.
message String Un message au format texte brut qui est inclus dans l’invitation de partage. Longueur maximale : 2 000 caractères.
requireSignIn Valeur booléenne Indique si le destinataire de l’invitation doit se connecter pour afficher l’élément partagé.
sendInvitation Valeur booléenne Si la valeur est true, un lien de partage est envoyé au destinataire. Dans le cas contraire, une autorisation est accordée directement sans envoi de notification.
roles Collection de chaînes Spécifie les rôles qui doivent être accordés aux destinataires de l’invitation de partage.
expirationDateTime DateTimeOffset Spécifie la dateTime après laquelle l’autorisation expire. Pour OneDrive professionnel ou scolaire et SharePoint, expirationDateTime s’applique uniquement aux autorisations sharingLink . Disponible sur OneDrive pour les comptes Personnels OneDrive professionnels ou scolaires, SharePoint et Premium.
mot de passe Chaîne Mot de passe défini sur l’invitation par le créateur. Facultatif et OneDrive pour les particuliers uniquement.
retainInheritedPermissions Boolean Facultatif. Si true la valeur est (valeur par défaut), toutes les autorisations héritées existantes sont conservées sur l’élément partagé lors du premier partage de cet élément. Si la valeur est false, toutes les autorisations existantes sont supprimées lors du premier partage.

Réponse

Si elle réussit, cette méthode renvoie un 200 OK code de réponse et une collection d’objets d’autorisation dans le corps de la réponse.

Pour plus d’informations sur la façon dont les erreurs sont retournées, consultez Réponses aux erreurs.

Réponse de réussite partielle

Lorsque vous invitez plusieurs destinataires, il est possible que la notification réussisse pour certains et échoue pour d’autres. Dans ce cas, le service retourne une réponse de réussite partielle avec un 207 Multi-Status code status. Lorsque la réussite partielle est retournée, la réponse pour chaque destinataire ayant échoué contient un objet d’erreur avec des informations sur ce qui s’est produit et sur la façon de le corriger. Pour plus d’informations, consultez Exemple 2.

Envoyer des erreurs de notification d’invitation

Le tableau suivant présente d’autres erreurs que votre application peut rencontrer dans les objets innererror imbriqués lors de l’échec de l’envoi d’une notification. Les applications ne sont pas nécessaires pour gérer ces erreurs.

Code Description
accountVerificationRequired La vérification du compte est nécessaire pour débloquer l’envoi de notifications.
hipCheckRequired Vous devez résoudre les case activée HIP (Host Intrusion Prevention) pour débloquer l’envoi de notifications.
exchangeInvalidUser La boîte aux lettres de l’utilisateur actuel est introuvable.
exchangeOutOfMailboxQuota Hors quota.
exchangeMaxRecipients Dépassement du nombre maximal de destinataires qui peuvent être envoyés des notifications en même temps.

Note: Le service peut ajouter de nouveaux codes d’erreur ou arrêter de retourner les anciens à tout moment.

Exemples

Exemple 1 : Envoyer une invitation de partage

L’exemple suivant montre comment envoyer une invitation de partage à un utilisateur avec l’adresse ryan@contoso.come-mail , y compris un message concernant un fichier en collaboration. L’invitation donne à Ryan un accès au fichier en lecture/écriture.

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/invite
Content-type: application/json

{
  "recipients": [
    {
      "email": "ryan@contoso.com"
    }
  ],
  "message": "Here's the file that we're collaborating on.",
  "requireSignIn": true,
  "sendInvitation": true,
  "roles": [ "write" ],
  "password": "password123",
  "expirationDateTime": "2018-07-15T14:00:00.000Z"
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "@deprecated.GrantedTo": "GrantedTo has been deprecated. Refer to GrantedToV2",
      "grantedTo": {
        "user": {
          "displayName": "Robin Danielsen",
          "id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
        }
      },
      "grantedToV2": {
        "user": {
          "id": "42F177F1-22C0-4BE3-900D-4507125C5C20",
          "displayName": "Robin Danielsen"
        },
        "siteUser": {
          "id": "1",
          "displayName": "Robin Danielsen",
          "loginName": "Robin Danielsen"
        }
      },
      "hasPassword": true,
      "id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
      "invitation": {
        "email": "robin@contoso.com",
        "signInRequired": true
      },
      "roles": [ "write" ],
      "expirationDateTime": "2018-07-15T14:00:00.000Z"
    }
  ]
}

Exemple 2 : Envoyer une invitation de partage avec un succès partiel

L’exemple suivant montre une requête qui réussit partiellement.

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/v1.0/me/drive/items/{item-id}/invite
Content-type: application/json

{
  "recipients": [
    {
      "email": "helga@contoso.com"
    },
    {
      "email": "robin@contoso.com"
    }
  ],
  "message": "Here's the file that we're collaborating on.",
  "requireSignIn": true,
  "sendInvitation": true,
  "roles": [ "write" ],
  "password": "password123",
  "expirationDateTime": "2018-07-15T14:00:00.000Z"
}

Réponse

L’exemple suivant montre la réponse partielle.

HTTP/1.1 207 Multi-Status
Content-type: application/json

{
  "value": [
    {
      "grantedTo": {
        "user": {
          "displayName": "Helga Hammeren",
          "id": "5D8CA5D0-FFF8-4A97-B0A6-8F5AEA339681"
        }
      },
      "id": "1EFG7CA3-7A19-4D57-8CEF-149DB9DDFA62",
      "invitation": {
        "email": "helga@contoso.com",
        "signInRequired": true
      },
      "roles": [ "write" ],
      "error": {
        "code":"notAllowed",
        "message":"Account verification needed to unblock sending emails.",
        "localizedMessage": "Kontobestätigung erforderlich, um das Senden von E-Mails zu entsperren.",
        "fixItUrl":"http://g.live.com/8SESkydrive/VerifyAccount",
        "innererror":{
          "code":"accountVerificationRequired"
        }
      }
    },
    {
      "grantedTo": {
        "user": {
          "displayName": "Robin Danielsen",
          "id": "42F177F1-22C0-4BE3-900D-4507125C5C20"
        }
      },
      "id": "CCFC7CA3-7A19-4D57-8CEF-149DB9DDFA62",
      "invitation": {
        "email": "robin@contoso.com",
        "signInRequired": true
      },
      "roles": [ "write" ],
      "expirationDateTime": "2018-07-15T14:00:00.000Z"
    }
  ]
}

Pour obtenir la liste des rôles disponibles, consultez Valeurs des propriétés de rôles.