Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les API d’exportation Teams vous permettent d’exporter des conversations de groupe 1:1, des conversations de réunion et des messages de canal à partir de Microsoft Teams. Si votre organisation a besoin d’exporter des messages Microsoft Teams, vous pouvez les extraire à l’aide des API d’exportation Teams. Message de chat représente un message de conversation individuel au sein d’un canal ou d’une conversation. Le message de conversation peut être un message de conversation racine ou une partie d’un thread de réponse défini par la propriété replyToId dans le message de conversation.
Voici quelques exemples d’utilisation de ces API d’exportation :
Exemple 1 : si vous avez activé Microsoft Teams dans votre organisation et que vous souhaitez exporter tous les messages Microsoft Teams à ce jour par programme en transmettant la plage de dates pour un utilisateur ou une équipe donné(e).
Exemple 2 : si vous souhaitez exporter quotidiennement tous les messages utilisateur ou d’équipe par programme en fournissant une plage de dates. Les API d’exportation peuvent récupérer tous les messages créés ou mis à jour pendant la plage de dates donnée.
Exemple 3 : si vous souhaitez exporter par programme les liens vers les enregistrements de réunion Teams d’un organisateur de réunion donné, puis télécharger les enregistrements réels.
Exemple 4 : si vous souhaitez exporter par programme les liens vers les transcriptions de réunion Teams pour un organisateur de réunion donné, puis télécharger les transcriptions réelles.
Qu’est-ce qui est pris en charge par les API d’exportation Teams ?
Exportation en bloc du message Teams : Consultez les limites de l’API d’exportation de Teams. Avec ces limites, vous devriez être en mesure d’exporter en bloc des messages Teams.
Limite supérieure pour le message Teams : Il est recommandé de définir la limite de filtre TOP pour les API de message Teams à 250 comme limite maximale au-delà de laquelle les performances seraient limitées.
Remarque
La valeur $top est un indicateur maximal et non une taille de page garantie. En raison de la façon dont les messages sont récupérés à partir de plusieurs dossiers/boîtes aux lettres Outlook sous-jacents, une réponse peut renvoyer moins d’éléments que demandé et inclure une @odata.nextLink récupération continue à partir d’autres dossiers. Ce comportement est inhérent au produit.
Contexte de l’application : Pour appeler Microsoft Graph, votre application doit acquérir un jeton d’accès à partir de la Plateforme d’identités Microsoft. Le jeton d’accès contient des informations sur votre application et les autorisations dont elle dispose pour les ressources et les API disponibles via Microsoft Graph. Pour obtenir un jeton d’accès, votre application doit être inscrite auprès de la Plateforme d’identités Microsoft. Un utilisateur ou un administrateur doit l’autoriser à accéder aux ressources Microsoft Graph dont il a besoin. Si vous avez déjà l’habitude d’intégrer une application à la plateforme d’identités Microsoft pour obtenir des jetons, consultez la section Étapes suivantes pour obtenir des informations et des exemples spécifiques à Microsoft Graph.
Environnement hybride : Les API d’exportation prennent en charge les messages envoyés par les utilisateurs provisionnés dans un environnement hybride (local Exchange et Teams). Tous les messages envoyés par les utilisateurs configurés pour un environnement hybride sont accessibles à l’aide des API d’exportation.
Messages supprimés par l’utilisateur : Les messages supprimés par les utilisateurs du client Teams sont accessibles à l’aide des API d’exportation jusqu’à 21 jours à compter de leur suppression.
Pièces jointes aux messages : Les API d’exportation incluent des informations de pièce jointe pour les fichiers envoyés dans les messages. Les pièces jointes peuvent apparaître sous forme de métadonnées et, dans certains cas, sous forme de liens (par exemple, des URL ASM) dans le corps du message. La collection du message doit être utilisée pour récupérer les
attachmentsfichiers joints, car les URL incorporées dans le corps peuvent ne pas être directement accessibles.Réactions : Les API d’exportation prennent en charge les réactions initiées par un utilisateur sur un message Teams. Les réactions actuellement prises en charge sont les suivantes : cœur, colère, j’aime, triste, surpris et rire. Outre les réactions, l’API Export prend également en charge l’historique des modifications des réactions, qui inclut les modifications et les mises à jour apportées à une réaction à un message.
Remarque
Les réactions personnalisées avec des changements de couleur ne sont actuellement pas prises en charge par l’API Export.
Messages de canal partagé : Les API d’exportation prennent en charge la capture de messages à partir d’un canal partagé.
Équipes supprimées : L’API d’exportation prend en charge la capture des messages à partir d’équipes supprimées et de canaux standard, privés et partagés supprimés pendant un maximum de 30 jours à compter du jour de la suppression. Après 30 jours, les équipes et les canaux sont définitivement supprimés, et les messages ne peuvent pas être récupérés.
Utilisateurs supprimés : l’API d’exportation prend en charge la capture des messages des utilisateurs supprimés jusqu’à 30 jours à compter de la suppression de l’utilisateur. Pour trouver la liste des utilisateurs supprimés, voir Éléments supprimés.
Utilisateurs inactifs : l’API d’exportation prend en charge la capture des messages pour les utilisateurs inactifs jusqu’à 30 jours à compter du moment où l’utilisateur devient inactif. Pour trouver la liste des boîtes aux lettres inactives, voir Boîtes aux lettres inactives.
Propriétés du message de chat :reportez-vous à la liste complète des propriétés prises en charge par les API d’exportation Teams.
Messages de contrôle : L’API Export prend en charge la capture des messages de contrôle en plus des messages générés par l’utilisateur. Les messages de contrôle sont des messages générés par le système qui apparaissent sur le client Teams. Ils contiennent des informations importantes telles que « L’utilisateur A a ajouté l’utilisateur B à la conversation et a partagé tout l’historique des conversations », ainsi que l’horodatage. Les messages système permettent à l’appelant d’avoir des informations sur les événements qui se sont produits dans une équipe, un canal ou une conversation. Reportez-vous à la liste des messages de contrôle que l’API Export prend actuellement en charge.
En savoir plus sur l’exportation des messages dans les conversations et les canaux.
Remarque
Les messages de contrôle liés à la réunion ne sont actuellement pas pris en charge par l’API d’exportation.
Historique des modifications : Si votre client est configuré avec la stratégie de rétention Teams, l’API d’exportation prend en charge la capture de l’historique des modifications des messages pour les conversations individuelles et de groupe, ainsi que des publications et commentaires dans les canaux publics et partagés.
Pour en savoir plus sur la stratégie de rétention Teams, consultez Gérer les stratégies de rétention pour Microsoft Teams pour plus de détails.
En savoir plus sur l’exportation des messages d’historique modifiés dans les conversations et les canaux.
Transcriptions de réunion : Obtenir toutes les transcriptions des instances de réunion en ligne planifiées pour lesquelles l’utilisateur spécifié est l’organisateur. Pour l’instant, cette API ne prend en charge que les réunions planifiées privées.
En savoir plus sur l’exportation des transcriptions de réunion.
Enregistrements de réunion : Obtenir tous les enregistrements des instances de réunion en ligne planifiées pour lesquelles l’utilisateur spécifié est l’organisateur. Pour l’instant, cette API ne prend en charge que les réunions planifiées privées.
En savoir plus sur l’exportation des enregistrements de réunion.
Messages ciblés : Les messages envoyés par un agent ou un bot à l’utilisateur peuvent être exportés même après avoir été purgés des clients après 24 heures. Découvrez comment exporter des messages ciblés et comment supprimer des messages ciblés.
Comment accéder aux API d’exportation Teams
L’exemple 1 est une requête simple permettant de récupérer tous les messages d’un utilisateur ou d’une équipe sans aucun filtre :
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessagesGET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessagesL’exemple 2 est un exemple de requête permettant de récupérer tous les messages d’un utilisateur ou d’une équipe en spécifiant la date, l’heure, les filtres et les 50 premiers messages :
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413ZGET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413ZL’exemple 3 est un exemple de requête permettant de récupérer les liens vers tous les enregistrements de réunions Teams disponibles d’un utilisateur. Le filtrage par plage de dates est pris en charge. Le filtre n premiers est pris en charge, comme pour les messages de Chat :
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer/User/Id eq ‘{id}’GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllRecordings(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})L’exemple 4 est un exemple de requête permettant de récupérer les liens vers toutes les transcriptions de réunions Teams disponibles d’un utilisateur. Le filtrage par plage de dates est pris en charge. Le filtre n premiers est pris en charge, comme pour les messages de Chat :
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer/User/Id eq ‘{id}’GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts(meetingOrganizerUserId='{userId}',startDateTime={startDateTime},endDateTime={endDateTime})L’exemple 5 est un exemple de requête chaînée permettant d’obtenir d’abord toutes les réunions Teams transcrites disponibles d’un utilisateur, puis de récupérer toutes les Insights IA disponibles :
GET https://graph.microsoft.com/v1.0/users/{id}/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer/User/Id eq '{id}'Ensuite, récupérez Insights IA pour chacun
meetingIdrenvoyé par la requête ci-dessus.GET https://graph.microsoft.com/v1.0/copilot/users/{id}/onlineMeetings/{meetingId}/aiInsightsRemarque
L’API retourne une réponse avec le lien de la page suivante s’il y a plusieurs résultats. Pour obtenir l’ensemble de résultats suivant, appelez GET sur l’URL à partir de @odata.nextlink. Si @odata.nextlink elle n’est pas présente ou est nulle, tous les messages sont récupérés.
Remarque
Il n’est pas garanti que l’ordre des messages dans la réponse soit trié par date/heure, telle que createdDateTime ou lastModifiedDateTime.
Prérequis pour accéder aux API d’exportation Teams
Les API Microsoft Teams dans Microsoft Graph qui accèdent à des données sensibles sont considérées comme des API protégées. Vous pouvez appeler ces API tant que la configuration requise pour y accéder sans utilisateur est remplie.
Les autorisations d’application sont utilisées par les applications qui s’exécutent sans la présence d’un utilisateur connecté. Seul un administrateur peut approuver les autorisations d’application. Les autorisations suivantes sont nécessaires :
Chat. Read.All : permet d’accéder à tous les messages de conversation de groupe et de conversation de réunion en tête-à-tête.
ChannelMessage.Read.All : permet d’accéder à tous les messages du canal.
User.Read.All : active l’accès à la liste des utilisateurs pour un client.
OnlineMeetingTranscript.Read.All : permet d’accéder aux transcriptions pour toutes les réunions Teams planifiées 1 :n.
OnlineMeetingRecording.Read.All : permet d’accéder aux enregistrements pour toutes les réunions Teams planifiées.
Conditions de licence pour les API d’exportation Teams
Pour utiliser les API d’exportation de Microsoft Teams, les organisations doivent disposer d’une licence Microsoft Teams active affectée aux utilisateurs dont les données sont exportées.
Remarque
L’utilisation des API d’exportation de Microsoft Teams ne nécessite pas de plan de service Protection contre la perte de données Microsoft Purview (DLP) ni de licence DLP supplémentaire.
Les API d’exportation fonctionnent indépendamment des fonctionnalités Microsoft DLP Purview et sont disponibles pour les locataires disposant de la licence Teams appropriée qui prend en charge l’accès aux données via les API d’exportation Microsoft Graph.
| Nom du partenaire | Partner Solution |
|---|---|
|
Archivage et conformité de Microsoft Teams |
|
Contenu Proofpoint Capture pour Microsoft Teams |
Les partenaires suivants sont certifiés. Votre entreprise peut choisir de travailler avec n’importe quelle combinaison de ces partenaires au sein de votre entreprise.
| Nom du partenaire | Partner Solution |
|---|---|
|
Sauvegarde et récupération Microsoft Teams |
|
Sauvegarde et récupération Microsoft Teams |
Étapes suivantes
Si vous êtes un fournisseur et que vous souhaitez rejoindre le programme de certification, remplissez ce formulaire à l’étape suivante. Si vous avez besoin de fournir plus de contexte et de détails, envoyez un courrier à l’équipe de l’écosystème MS Teams (TeamsCategoryPartner@microsoft.com).
Mode d’évaluation (par défaut)
Aucune déclaration de modèle ne permet d’accéder aux API avec une utilisation limitée pour chaque demande à des fins d’évaluation.
Représentation JSON
L’exemple suivant est une représentation JSON de la ressource de conversation :
Espace de noms : microsoft.graph
{ "id": "string (identifier)", "replyToId": "string (identifier)", "from": {"@odata.type": "microsoft.graph.identitySet"}, "etag": "string", "messageType": "string", "createdDateTime": "string (timestamp)", "lastModifiedDateTime": "string (timestamp)", "deletedDateTime": "string (timestamp)", "subject": "string", "from": { "application": null, "device": null, "conversation": null, "user": { "id": [{"@odata.type": "microsoft.graph.user"}], "displayName": "User Name", "userIdentityType": "aadUser" } }, "body": {"@odata.type": "microsoft.graph.itemBody"}, "summary": "string", "chatId": [{"@odata.type": "microsoft.graph.chat"}] "attachments": [{"@odata.type": "microsoft.graph.chatMessageAttachment"}], "mentions": [{"@odata.type": "microsoft.graph.chatMessageMention"}], "importance": "string", "locale": "string", }Remarque
Pour plus d’informations sur la ressource chatMessage, consultez l’article sur le type de ressource chatMessage .
L’exemple suivant est une représentation JSON de la ressource d’enregistrement :
Espace de noms : microsoft.graph
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(meetingRecording)", "@odata.count": 2, "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllRecordings?$filter=MeetingOrganizer%2fUser%2fId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d", "value": [ { "@odata.type": "#microsoft.graph.meetingRecording", "id": "6263af16-b660-41d0-a17b-83fbd15a39c7", "meetingId": "MSoxMjczYTAxNi0yMDFkRLTmOTUtODA5My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1BBXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", "meetingOrganizerId": "{userId}", "createdDateTime": "2022-08-03T20:43:36.2573447Z", "recordingContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/recordings/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content" }, { "@odata.type": "#microsoft.graph.meetingRecording", "id": "{recordingId}", "meetingId": "{meetingId}", "meetingOrganizerId": "{userId}", "createdDateTime": "2022-08-03T20:44:11.2635254Z", "recordingContentUrl": " https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content" }, ] }Où :
<id>représente un enregistrement unique.<meetingId>Représente un identificateur de réunion ou d’appel.<meetingOrganizer/user/id>Représente l’organisateur de la réunion.<createdDateTime>Indique l’heure de début de la réunion.<recordingContentUrl>value indique l’URL du contenu d’enregistrement.Les enregistrements sont au format MP4.
La taille moyenne du contenu d’enregistrement lui-même est d’environ 350 Mo sur disque, sur la base des moyennes que nous observons pour les réunions comprises entre 30 et 60 minutes.
Il n’est pas garanti que les résultats soient triés par
createdDateTime. Toutefois, lorsque plusieurs enregistrements sont présents pour une même réunion, ils partagent la mêmemeetingIdvaleur. En outre, les entrées des enregistrements multiples sont correctement séquencées pour la réunion en question.Il est garanti que les résultats ne seront présents qu’une fois que les enregistrements de réunion associés seront disponibles. En d’autres termes, l’appelant n’a besoin d’aucune autre interrogation pour être disponible.
La pagination des résultats est prise en charge selon les modèles actuels de l’API d’exportation de Teams. La pagination est prise en charge par la présence de la
@oData.nextLinkpropriété dans la réponse. La propriété nextLink contient uneskipTokenvaleur, comme indiqué dans le tableau suivant. Si noskipTokenest présent, cela signifie qu’il n’y a plus de résultats à récupérer dans le lot actuel :Demande Réponse @nextLink Commentaires /getAllRecordingsNombre : 10 ?skipToken=ABCDemande initiale sans skipToken/getAllRecordings?skipToken=ABCNombre : 10 ?skipToken=DEFSkipTokenretourné, demander d’accéder à la page suivante/getAllRecordings?skipToken=DEFNombre : 7 No skipToken, plus de données disponibles$topest également pris en charge selon les modèles actuels dans l’API d’exportation de Teams.DeltaTokenpour activer les scénarios de suivi des modifications et de synchronisation est pris en charge. Pour obtenir une vue d’ensemble et des exemples de requêtes delta existantes, consultez Utiliser une requête delta pour suivre les modifications apportées aux données Microsoft Graph.L’API suivante peut être utilisée pour obtenir le contenu d’enregistrement réel du ,
meetingIdrecordingIdetuserIdobtenu dans la réponse de l’API GETgetAllRecordings. Elle renvoie le contenu de l’enregistrement :GET users('{userId}')/onlineMeetings('{meetingId}')/recordings('{recordingId}')/content
L’exemple suivant est une représentation JSON de la ressource de transcription :
Espace de noms : microsoft.graph
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(callTranscript)", "@odata.count": 2, "@odata.nextLink": "https://graph.microsoft.com/v1.0/users('{userId}')/onlineMeetings/getAllTranscripts?$filter=MeetingOrganizer%2fUser%2fId+eq+%27{userId}%27&$skiptoken=MSMjMCMjTkNaYVNIQjVVbXRPYWxaV1dscGFWVGg1V2pOb1IxUXpRWGxrUm1oTFVrWmtTV1ZyYkhwUlZVWm9UMWR3VEdWWGRFTlJWVVpDVVZFOVBRPT0%3d", "value": [ { "@odata.type": "#microsoft.graph.callTranscript", "id": "MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh", "meetingId": "MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy", "meetingOrganizerId": "{userId}", "transcriptContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/MSoxMjczYTAxNi0yMDFkLTRmOTUtODA4My0xYjdmOTliM2VkZWIqMCoqMTk6bWVldGluZ19aR1F3WTJZNE9XTXROekppWlMwME1XWTRMVGc0TWpBdE1ERXdOV1kzWlRsak9UTXlAdGhyZWFkLnYy/transcripts/MSMjMCMjMGFjNmUwZTgtYmZjYy00NDQxLTk2MGYtZjllNjVhNjI0NzBh/content", "createdDateTime": "2022-08-03T20:43:36.6248355Z" }, { "@odata.type": "#microsoft.graph.callTranscript", "id": "{transcriptId}", "meetingId": "{meetingId}", "meetingOrganizerId": "{userId}", "transcriptContentUrl": "https://graph.microsoft.com/v1.0/users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content", }, ] }Où :
<id>représente un enregistrement unique.<meetingId>Représente un identificateur de réunion ou d’appel.<meetingOrganizer/user/id>Représente l’organisateur de la réunion.<createdDateTime>Indique l’heure de début de la réunion.<transcriptContentUrl>La valeur indique l’URL du contenu de la transcription.Le contenu de la transcription, par défaut, est au format VTT. Mais, en utilisant une valeur d’en-tête Accept de
application/vnd.openxmlformats-officedocument.wordprocessingml.document, le format DOCX peut également être obtenu.La taille moyenne du contenu de la transcription au format JSON/VTT est d’environ 300 Ko, sur la base des moyennes que nous observons pour les réunions comprises entre 30 et 60 minutes.
Il n’est pas garanti que les résultats soient triés par
createdDateTime. Toutefois, lorsque plusieurs enregistrements sont présents pour une même réunion, ils partagent la mêmemeetingIdvaleur. En outre, les entrées des enregistrements multiples sont correctement séquencées pour la réunion en question.Il est garanti que les résultats ne seront présents qu’une fois que les enregistrements de réunion associés seront disponibles. En d’autres termes, l’appelant n’a besoin d’aucune autre interrogation pour être disponible.
La pagination des résultats est prise en charge selon les modèles actuels de l’API d’exportation de Teams. La pagination est prise en charge par la présence d’une
@oData.nextLinkpropriété dans la réponse. LanextLinkpropriété contient uneskipTokenvaleur, comme indiqué dans le tableau suivant. Si noskipTokenest présent, cela signifie qu’il n’y a plus de résultats à récupérer dans le lot actuel :Demande Réponse @nextLink Commentaires /getAllTranscriptsNombre : 10 ?skipToken=ABCDemande initiale sans skipToken/getAllTranscripts?skipToken=ABCNombre : 10 ?skipToken=DEFSkipTokenretourné, demander d’accéder à la page suivante/getAllTranscripts?skipToken=DEFNombre : 7 No skipToken, plus de données disponibles$topest également pris en charge selon les modèles actuels dans l’API d’exportation de Teams.DeltaTokenpour activer les scénarios de suivi des modifications et de synchronisation est pris en charge. Pour obtenir une vue d’ensemble et des exemples de requêtes delta existantes, consultez Utiliser une requête delta pour suivre les modifications apportées aux données Microsoft Graph.L’API suivante peut être utilisée pour obtenir le contenu de transcription réel de l’UserId, du meetingId et du transcriptId sélectionnés qui a été obtenu dans la réponse de l’API GET getAllTranscripts. Elle renvoie le contenu de l’enregistrement.
GET users('{userId}')/onlineMeetings('{meetingId}')/transcripts('{transcriptId}')/content
Pour plus d’informations, consultez Utiliser les API Graph pour récupérer la transcription.
Exporter des filtres d’API
L’API Export hébergée sur le service Graph Teams reçoit tous les messages utilisateur de la boîte aux lettres utilisateur du substrat à l’aide de users/{userId}/chats/getAllMessages. L’API Export récupère les messages envoyés et reçus pour un utilisateur, ce qui entraîne l’exportation des messages en double lors de l’appel de l’API pour tous les utilisateurs dans le thread de conversation.
L’API d’exportation dispose de paramètres de filtre qui permettent d’optimiser les messages retournés pour un thread de conversation. L’API GET prend en charge de nouveaux paramètres de filtre qui permettent d’extraire les messages en fonction des messages envoyés à l’utilisateur, au bot et aux événements d’application et de système. Le paramètre de filtre prend en charge les messages envoyés par :
utilisateurs (plusieurs ID utilisateur pris en charge dans la même demande).
applications (bots, connecteurs, etc.).
Tous userIdentityTypes sauf emailUser et unknownFutureValue.
Messages d’événement système (messages de contrôle).
Ces paramètres font partie de la demande $filter. Si aucun de ces paramètres n’est présent dans la demande, les messages de tous les utilisateurs présents dans les conversations utilisateur spécifiées sont retournés.
Les scénarios de filtrage pris en charge sont les suivants :
$filter=from/application/applicationIdentityType eq '<appType>' (bots/tenantBots/connectors, etc.)
$filter=from/user/id eq '<oid>' (any number of id filters)
$filter=from/user/userIdentityType eq '<userIdentityType>'
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' (sent by app or userid)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' (sent by app or anonymous)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'federatedUser' (sent by app or federated)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by app, anonymous or federated)
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' (sent by any number of userid or anonymous)
$filter=from/user/id eq '<oid>' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous)
$filter=from/application/applicationIdentityType eq '<appType>' or from/user/id eq '<oid>' or from/user/userIdentityType eq 'anonymousGuest' or from/user/userIdentityType eq 'federatedUser' (sent by any number of userid or federated or anonymous) or messageType eq 'systemEventMessage'
(<any of the previous filters>) and (lastModifiedDateTime+gt+<date>+and+lastModifiedDateTime+lt+<date>)
La requête renvoie les messages envoyés par l’utilisateur spécifié s’il
from/user/id eq ‘{oid}’est présent.La requête renvoie les messages envoyés par les utilisateurs fédérés qui font partie des conversations utilisateur, le cas échéant
from/user/userIdentityType eq ‘federatedUser’.La requête renvoie les messages envoyés par le type d’application spécifié s’il
from/application/applicationIdentityType eq '{appType}'est présent.La requête renvoie les messages envoyés par le système s’il
messageType eq 'systemEventMessage'est présent.
Ces paramètres peuvent être combinés entre eux à l’aide des opérateurs OR ou en les combinant avec le lastModifiedDateTime$filter paramètre.
API d’exportation Teams pour les messages conservés
Si votre client est configuré avec la stratégie de rétention Teams, l’API Export prend en charge la capture des messages à partir du dossier de conservations pour les conversations individuelles & de groupe, et les publications, les commentaires dans les canaux publics & partagés.
Comment accéder à l’API Messages conservés
L’exemple 1 est une requête simple permettant de récupérer tous les messages conservés d’un utilisateur :
GET https://graph.microsoft.com/v1.0/users/8b081ef6-4792-4def-b2c9-c363a1bf41d5/chats/getAllRetainedMessagesL’exemple 2 est une requête simple permettant de récupérer tous les messages conservés d’une équipe :
GET https://graph.microsoft.com/v1.0/teams/8b081ef6-4792-4def-b2c9-c363a1bf41d5/channels/getAllRetainedMessages
Ce qui est pris en charge par l’API getAllRetainedMessages
- Message supprimé de manière réversible par un utilisateur dans une conversation ou un canal Si l’utilisateur est en attente, au-delà de la période de suppression de 21 jours, le message peut être exporté via l’API.
- Message supprimé de manière réversible par un utilisateur dans une conversation ou un canal Si une stratégie de rétention valide est définie, au-delà de la période de suppression de 21 jours, le message peut être exporté via l’API.
- Message modifié par un utilisateur dans une conversation ou un canal Si une stratégie de rétention valide est définie, les versions modifiées précédentes du message peuvent être exportées.
Remarque
L’API /getAllRetainedMessages permet de récupérer des messages de canal supprimés pendant une période maximale de 30 jours à compter du jour de la suppression. Après 30 jours, les équipes et les canaux sont supprimés de manière définitive, et les messages ne peuvent pas être récupérés.
Interactions avec Microsoft Copilot
En savoir plus sur aiInteractionHistory : getAllEnterpriseInteractions qui permet d’exporter les interactions Copilot.