Mettre à jour un abonnement

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Renouveler un abonnement en étendant sa date d’expiration.

Le tableau de la section Autorisations répertorie les ressources qui prennent en charge l’abonnement aux notifications de modification.

Les abonnements expirent après une durée qui varie selon le type de ressource. Pour éviter les notifications de modification manquantes, une application doit renouveler ses abonnements bien avant leur date d’expiration. Consultez abonnement pour connaître la longueur maximale d’un abonnement pour chaque type de ressource.

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

En fonction du type de ressource et d’autorisation(délégué ou application) demandé, l’autorisation spécifiée dans le tableau suivant est la moins requise privilégiée pour appeler cette API. Pour en savoir plus, notamment sur les Mesures de prudence avant de choisir des autorisations plus privilégiées, recherchez ces autorisations dans Autorisations.

Remarque

Certaines ressources prennent en charge les notifications de modification dans plusieurs scénarios, chacun d’entre eux pouvant nécessiter des autorisations différentes. Dans ce cas, utilisez le chemin de la ressource pour différencier les scénarios.

Ressource prise en charge Déléguée (compte professionnel ou scolaire) Déléguée (compte Microsoft personnel) Application
approvalItems Non prise en charge. Non prise en charge. ApprovalSolution.ReadWrite.All
callRecord Non prise en charge. Non prise en charge. CallRecords.Read.All
callRecording
communications/onlineMeetings/getAllRecordings
Tout enregistrement devient disponible dans le locataire.
Non prise en charge. Non prise en charge. OnlineMeetingRecording.Read.All
callRecording
communications/onlineMeetings/{onlineMeetingId}/recordings
Tout enregistrement devient disponible pour une réunion spécifique.
OnlineMeetingRecording.Read.All Non prise en charge. OnlineMeetingRecording.Read.All
callRecording
users/{userId}/onlineMeetings/getAllRecordings
Enregistrement d’appel qui devient disponible dans une réunion organisée par un utilisateur spécifique.
OnlineMeetingRecording.Read.All Non prise en charge. OnlineMeetingRecording.Read.All
callRecording
appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings
Enregistrement d’appel qui devient disponible dans une réunion où une application Teams particulière est installée.
Non prise en charge. Non prise en charge. OnlineMeetingRecording.Read.All, OnlineMeetingRecording.Read.Chat
callTranscript
communications/onlineMeetings/getAllTranscripts
Toute transcription devient disponible dans le locataire.
Non prise en charge. Non prise en charge. OnlineMeetingTranscript.Read.All
callTranscript
communications/onlineMeetings/{onlineMeetingId}/transcripts
Toute transcription devient disponible pour une réunion spécifique.
OnlineMeetingTranscript.Read.All Non prise en charge. OnlineMeetingTranscript.Read.All
callTranscript
users/{userId}/onlineMeetings/getAllTranscripts
Transcription d’appel qui devient disponible dans une réunion organisée par un utilisateur spécifique.
OnlineMeetingTranscript.Read.All Non prise en charge. OnlineMeetingTranscript.Read.All
callTranscript
appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTranscripts
Transcription d’appel qui devient disponible dans une réunion où une application Teams particulière est installée.
Non prise en charge. Non prise en charge. OnlineMeetingTranscript.Read.All, OnlineMeetingTranscript.Read.Chat
channel
/teams/getAllChannels
Tous les canaux d’une organisation.
Non prise en charge. Non prise en charge. Channel.ReadBasic.All, ChannelSettings.Read.All, ChannelSettings.ReadWrite.All
channel
/teams/{id}/channels
Tous les canaux d’une équipe particulière dans une organisation.
Channel.ReadBasic.All, ChannelSettings.Read.All, ChannelSettings.ReadWrite.All Non prise en charge. Channel.ReadBasic.All, ChannelSettings.Read.All, ChannelSettings.ReadWrite.All
conversation
/chats
Toutes les conversations d’une organisation.
Non prise en charge. Non prise en charge. Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversation
/chats/{id}
Une conversation particulière.
Chat.ReadBasic, Chat.Read, Chat.ReadWrite Non prise en charge. ChatSettings.Read.Chat, ChatSettings.ReadWrite.Chat, Chat.Manage.Chat, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversation
/appCatalogs/teamsApps/{id}/installedToChats
Toutes les conversations dans une organisation où une application Teams particulière est installée.
Non prise en charge. Non prise en charge. Chat.ReadBasic.WhereInstalled, Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
conversation
/users/{id}/chats
Toutes les conversations dont un utilisateur particulier fait partie.
Chat.ReadBasic, Chat.Read, Chat.ReadWrite Non prise en charge. Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
chatMessage
/teams/{id}/channels/{id}/messages
Tous les messages et réponses dans un canal particulier.
ChannelMessage.Read.All, Group.Read.All, Group.ReadWrite.All Non prise en charge. ChannelMessage.Read.Group, ChannelMessage.Read.All
chatMessage
/teams/getAllMessages
Tous les messages de canal dans l’organisation.
Non prise en charge. Non prise en charge. ChannelMessage.Read.All
chatMessage
/chats/{id}/messages
Tous les messages d’une conversation.
Chat.Read, Chat.ReadWrite Non prise en charge. Chat.Read.All
chatMessage
/chats/getAllMessages
Tous les messages de conversation dans une organisation.
Non prise en charge. Non prise en charge. Chat.Read.All
chatMessage
/users/{id}/chats/getAllMessages
Messages de conversation pour toutes les conversations dont un utilisateur particulier fait partie.
Chat.Read, Chat.ReadWrite Non prise en charge. Chat.Read.All, Chat.ReadWrite.All
chatMessage
/appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
Messages de conversation pour toutes les conversations dans une organisation où une application Teams particulière est installée.
Non prise en charge. Non prise en charge. Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
contact Contacts.Read Contacts.Read Contacts.Read
conversationMember
/chats/getAllMembers
Membres de toutes les conversations d’une organisation.
Non prise en charge. Non prise en charge. ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversationMember
/chats/{id}/members
Membres d’une conversation particulière.
ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite Non prise en charge. ChatMember.Read.Chat, Chat.Manage.Chat, ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversationMember
/appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
Membres de conversation pour toutes les conversations dans une organisation où une application Teams particulière est installée.
Non prise en charge. Non prise en charge. ChatMember.Read.WhereInstalled, ChatMember.ReadWrite.WhereInstalled, Chat.ReadBasic.WhereInstalled, Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
conversationMember
/teams/getAllMembers
Membres de toutes les équipes d’une organisation.
Non prise en charge. Non prise en charge. TeamMember.Read.All, TeamMember.ReadWrite.All
conversationMember
/teams/{id}/members
Membres d’une équipe particulière.
TeamMember.Read.All Non prise en charge. TeamMember.Read.All
conversationMember
/teams/{id}/channels/getAllMembers
Membres de tous les canaux privés d’une équipe particulière.
Non prise en charge. Non prise en charge. ChannelMember.Read.All
conversationMember
/teams/getAllChannels/getAllMembers
Non prise en charge. Non prise en charge. ChannelMember.Read.All
driveItem(OneDrive personnel de l’utilisateur) Non prise en charge. Files.ReadWrite Non prise en charge.
driveItem (OneDrive professionnel ou scolaire) Files.ReadWrite.All Non prise en charge. Files.ReadWrite.All
event Calendars.Read Calendars.Read Calendars.Read
groupe Group.Read.All Non prise en charge. Group.Read.All
Conversation de groupe Group.Read.All Non prise en charge. Non prise en charge.
liste Sites.ReadWrite.All Non prise en charge. Sites.ReadWrite.All
message Mail.ReadBasic, Mail.Read Mail.ReadBasic, Mail.Read Mail.Read
offerShiftRequest
/teams/{id}/schedule/offerShiftRequests
Modifications apportées à toute demande de shift d’offre dans une équipe.
Schedule.Read.All, Schedule.ReadWrite.All Non prise en charge. Schedule.Read.All, Schedule.ReadWrite.All
réunion en ligne Non prise en charge. Non prise en charge. OnlineMeetings.Read.All, OnlineMeetings.ReadWrite.All
openShiftChangeRequest
/teams/{id}/schedule/openShiftChangeRequests
Modifications apportées à toute demande de shift ouverte dans une équipe.
Schedule.Read.All, Schedule.ReadWrite.All Non prise en charge. Schedule.Read.All, Schedule.ReadWrite.All
présence Presence.Read.All Non prise en charge. Non prise en charge.
imprimante Non prise en charge. Non prise en charge. Printer.Read.All, Printer.ReadWrite.All
printTaskDefinition Non prise en charge. Non prise en charge. PrintTaskDefinition.ReadWrite.All
alerte de sécurité SecurityEvents.ReadWrite.All Non prise en charge. SecurityEvents.ReadWrite.All
shift
/teams/{id}/schedule/shifts
Modifications apportées à n’importe quel changement dans une équipe.
Schedule.Read.All, Schedule.ReadWrite.All Non prise en charge. Schedule.Read.All, Schedule.ReadWrite.All
swapShiftsChangeRequest
/teams/{id}/schedule/swapShiftsChangeRequests
Modifications apportées à toute demande de shift d’échange dans une équipe.
Schedule.Read.All, Schedule.ReadWrite.All Non prise en charge. Schedule.Read.All, Schedule.ReadWrite.All
team
/teams
Toutes les équipes d’une organisation.
Non prise en charge. Non prise en charge. Team.ReadBasic.All, TeamSettings.Read.All
team
/teams/{id}
Une équipe particulière.
Team.ReadBasic.All, TeamSettings.Read.All Non prise en charge. Team.ReadBasic.All, TeamSettings.Read.All
timeOffRequest
/teams/{id}/schedule/timeOffRequests
Modifications apportées à toute demande de congé dans une équipe.
Schedule.Read.All, Schedule.ReadWrite.All Non prise en charge. Schedule.Read.All, Schedule.ReadWrite.All
todoTask Tasks.ReadWrite Tasks.ReadWrite Non prise en charge.
utilisateur User.Read.All User.Read.All User.Read.All
virtualEventWebinar VirtualEvent.Read Non prise en charge. VirtualEvent.Read.All
baseTask (déconseillé) Tasks.ReadWrite Tasks.ReadWrite Non prise en charge.

Remarque

Les autorisations suivantes utilisent le consentement spécifique à la ressource :

  • OnlineMeetingRecording.Read.Chat
  • OnlineMeetingTranscript.Read.Chat
  • ChatSettings.Read.Chat
  • ChatSettings.ReadWrite.Chat
  • Chat.Manage.Chat
  • ChannelMessage.Read.Group
  • ChatMember.Read.Chat

chatMessage

Les abonnements chatMessage peuvent être spécifiés pour inclure des données de ressource. S’il est spécifié pour inclure des données de ressource (ncludeResourceData défini sur true), le chiffrement est nécessaire. La création de l’abonnement échoue si un encryptionCertificate n’est pas spécifié pour ces abonnements.

Vous devez utiliser l’en-tête Prefer: include-unknown-enum-members de requête pour obtenir les valeurs suivantes dans chatMessagemessageTypeevolvable enum : systemEventMessage for /teams/{id}/channels/{id}/messages et /chats/{id}/messages resource.

Remarque

/teams/getAllMessages, /chats/getAllMessages, /me/chats/getAllMessages, /users/{id}/chats/getAllMessageset /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages sont des API limitées ; les modèles de paiement et les exigences de licence peuvent s’appliquer. /teams/getAllMessages et /chats/getAllMessages prennent en charge à la fois les model=A modèles de paiement et model=B , /me/chats/getAllMessages, /users/{id}/chats/getAllMessageset /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages prennent uniquement model=Ben charge . Si vous ne spécifiez pas de modèle de paiement dans votre requête, le mode d’évaluation par défaut est utilisé.

Remarque

Pour ajouter ou modifier un modèle de paiement pour une ressource abonnée d’une notification de modification, vous devez créer un abonnement aux notifications de modification avec le nouveau modèle de paiement . La mise à jour d’une notification de modification existante ne fonctionne pas.

conversationMember

Les abonnements conversationMember peuvent être spécifiés pour inclure des données de ressources. S’il est spécifié pour inclure des données de ressource (ncludeResourceData défini sur true), le chiffrement est nécessaire. La création de l’abonnement échoue si un encryptionCertificate n’est pas spécifié.

Remarque

/teams/getAllMembers, /chats/getAllMemberset /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers sont des API limitées ; les modèles de paiement et les exigences de licence peuvent s’appliquer. /teams/getAllMemberset /chats/getAllMembers prennent en charge les model=A modèles de paiement et .model=B /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers prend uniquement model=Ben charge . Si vous ne spécifiez pas de modèle de paiement dans votre requête, le mode d’évaluation par défaut est utilisé.

Remarque

Pour ajouter ou modifier un modèle de paiement pour une ressource abonnée d’une notification de modification, vous devez créer un abonnement aux notifications de modification avec le nouveau modèle de paiement . La mise à jour d’une notification de modification existante ne fonctionne pas.

équipe, canal et conversation

Les abonnements d’équipe, de canal et de conversation peuvent être spécifiés pour inclure des données de ressources. S’il est spécifié pour inclure des données de ressource (ncludeResourceData défini sur true), le chiffrement est nécessaire. La création de l’abonnement échoue si un encryptionCertificate n’est pas spécifié.

Vous pouvez utiliser le paramètre de chaîne de requête notifyOnUserSpecificProperties lorsque vous vous abonnez à des modifications dans une conversation particulière ou au niveau de l’utilisateur. Lorsque vous définissez le paramètre de chaîne de requête notifyOnUserSpecificPropertiestrue sur lors de la création de l’abonnement, deux types de charges utiles sont envoyés à l’abonné. Un type contient des propriétés spécifiques à l’utilisateur, et l’autre est envoyé sans elles. Pour plus d’informations, consultez Obtenir des notifications de modification pour les conversations à l’aide de Microsoft Graph.

Remarque

/appCatalogs/teamsApps/{id}/installedToChats a des exigences de licence et de paiement, en particulier prenant en charge uniquement model=B. Si aucun modèle n’est spécifié, le mode d’évaluation sera utilisé.

Remarque

Pour ajouter ou modifier un modèle de paiement pour une ressource abonnée d’une notification de modification, vous devez créer un abonnement aux notifications de modification avec le nouveau modèle de paiement . La mise à jour d’une notification de modification existante ne fonctionne pas.

Exemple de requête

Spécifiez model le paramètre de requête dans la propriété de ressource dans le corps de la requête.

POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json

{
   "changeType": "created",
   "notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
   "resource": "chats/getAllMessages?model=A",
   "expirationDateTime":"2016-11-20T18:23:45.9356913Z",
   "clientState": "secretClientValue",
   "latestSupportedTlsVersion": "v1_2"
}

driveItem

D’autres limitations s’appliquent aux abonnements sur les éléments OneDrive. Les limitations s’appliquent à la création, ainsi que de la gestion des abonnements (prise, la mise à jour et suppression d’abonnements).

Sur un OneDrive personnel, vous pouvez vous abonner au dossier racine ou à tout sous-dossier de ce lecteur. Sur OneDrive professionnel ou scolaire, vous pouvez vous abonner uniquement au dossier racine. Des notifications de modification sont envoyées pour les modifications demandées sur le dossier abonné ou sur n’importe quel fichier, dossier ou autre instance driveItem dans sa hiérarchie. Vous ne pouvez pas vous abonner à des instances drive ou driveItem qui ne sont pas des dossiers, tels que des fichiers individuels.

contact, événement et message

Vous pouvez vous abonner aux modifications apportées aux ressources de contact, d’événement ou de message Outlook et éventuellement spécifier dans la charge utile de la requête POST s’il faut inclure des données de ressources chiffrées dans les notifications.

La création et la gestion (obtention, mise à jour et suppression) d’un abonnement nécessitent une étendue de lecture de la ressource. Par exemple, pour recevoir des notifications de modification sur les messages, votre application a besoin de l’autorisation Mail Read. Les notifications de modification Outlook prennent en charge les étendues d’autorisation déléguées et d’application. Notez les limitations suivantes :

  • L’autorisation déléguée permet de s'abonner à des articles dans des dossiers qui se trouvent uniquement dans la boîte aux lettres de l'utilisateur connecté. Par exemple, vous ne pouvez pas utiliser l’autorisation déléguée Calendars.Read pour vous abonner à des événements dans la boîte aux lettres d’un autre utilisateur.

  • Pour vous abonner afin de modifier les notifications de contacts, d’événements ou de messages dans Outlook dans dossierspartagés ou délégués:

    • Permet de s’abonner aux modifications d’éléments dans un dossier ou une boîte aux lettres de l’autorisation d’application correspondante n’importe quel utilisateur dans le client.
    • N’utilisez pas les autorisations de partage Outlook (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared et leurs équivalents en lecture/écriture), car elles ne prennent pas en charge l’abonnement aux notifications de modification sur les éléments des dossiers partagés ou délégués.

onlineMeetings, presence

onlineMeetings et abonnements deprésence nécessitent un chiffrement pour les notifications avec des données de ressources. La création de l’abonnement échoue si encryptionCertificate et encryptionCertificateId ne sont pas spécifiés si les données de ressource sont souhaitées dans les notifications. Pour plus d’informations sur la présence et les abonnements aux réunions en ligne, consultez Obtenir des notifications de modification pour les mises à jour de présence dans Microsoft Teams et Obtenir des notifications de modification pour les réunions en ligne.

virtualEventWebinar

Les abonnements aux événements virtuels prennent uniquement en charge les notifications de base et sont limités à quelques entités d’un événement virtuel. Pour plus d’informations sur les types d’abonnements pris en charge, consultez Obtenir des notifications de modification pour les mises à jour d’événements virtuels Microsoft Teams.

Requête HTTP

PATCH /subscriptions/{id}

En-têtes de demande

Nom Type Description
Autorisation string Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.

Corps de la demande

Dans le corps de la demande, fournissez uniquement les valeurs des propriétés qui doivent être mises à jour. Les propriétés existantes qui ne sont pas incluses dans le corps de la demande conservent leurs valeurs précédentes ou sont recalculées en fonction des modifications apportées à d’autres valeurs de propriété.

Le tableau suivant spécifie les propriétés qui peuvent être mises à jour.

Nom Type Description
expirationDateTime DateTimeOffset Spécifie la date et l’heure au format UTC à laquelle l’abonnement expire. Pour l’abonnement maximal pris en charge, la durée varie en fonction de la ressource.

Réponse

Si elle réussit, cette méthode renvoie un code de réponse 200 OK et un objet abonnement dans le corps de la réponse.

Pour plus d’informations sur le retour des erreurs, voir Réponses aux erreurs.

Exemple

Demande

L’exemple suivant illustre une demande.

PATCH https://graph.microsoft.com/beta/subscriptions/{id}
Content-type: application/json

{
   "expirationDateTime":"2016-11-22T18:23:45.9356913Z"
}

Réponse

L’exemple suivant illustre la réponse.

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

{
  "id":"7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
  "resource":"me/messages",
  "applicationId": "24d3b144-21ae-4080-943f-7067b395b913",
  "changeType":"created,updated",
  "clientState":"secretClientValue",
  "notificationUrl":"https://webhook.azurewebsites.net/api/send/myNotifyClient",
  "lifecycleNotificationUrl":"https://webhook.azurewebsites.net/api/send/lifecycleNotifications",
  "expirationDateTime":"2016-11-22T18:23:45.9356913Z",
  "creatorId": "8ee44408-0679-472c-bc2a-692812af3437",
  "latestSupportedTlsVersion": "v1_2",
  "encryptionCertificate": "",
  "encryptionCertificateId": "",
  "includeResourceData": false,
  "notificationContentType": "application/json"
}