Envoyer un message dans une conversation

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 .

Envoyez un nouveau chatMessage dans le chat spécifié. Cette API ne peut pas créer de conversation ; vous devez utiliser la méthode des conversations de liste pour récupérer l’ID d’une conversation existante avant de créer un message de conversation.

Remarques :

  • Nous vous déconseillons d’utiliser cette API pour la migration des données via le flux de création de message standard. Pour les scénarios de migration de données, utilisez plutôt le flux d’importation de messages .
  • L’utilisation de Microsoft Teams en tant que fichier journal constitue une violation des conditions d’utilisation . Envoyer uniquement les messages que les personnes peuvent lire.

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

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet
✅ ✅ ✅ ✅

Autorisations

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

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
Déléguée (compte professionnel ou scolaire) ChatMessage.Send Chat. ReadWrite, Group.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Teamwork.Migrate.All Non disponible.

Requête HTTP

POST /chats/{chat-id}/messages

En-têtes de demande

Nom Description
Autorisation Porteur {code}. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON d’un objet chatMessage .

Réponse

En cas de succès, cette méthode renvoie un 201 Created code de réponse et un nouvel objet chatMessage dans le corps de la réponse.

Exemples

Pour une liste plus complète d’exemples, consultez Créer chatMessage dans un canal ou une conversation.

Exemple 1 : Créer un chatMessage

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/beta/chats/19:2da4c29f6d7041eca70b638b43d45437@thread.v2/messages
Content-type: application/json

{
  "body": {
     "content": "Hello world"
  }
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3A2da4c29f6d7041eca70b638b43d45437%40thread.v2')/messages/$entity",
    "id": "1616991463150",
    "replyToId": null,
    "etag": "1616991463150",
    "messageType": "message",
    "createdDateTime": "2021-03-29T04:17:43.15Z",
    "lastModifiedDateTime": "2021-03-29T04:17:43.15Z",
    "lastEditedDateTime": null,
    "deletedDateTime": null,
    "subject": null,
    "summary": null,
    "chatId": "19:2da4c29f6d7041eca70b638b43d45437@thread.v2",
    "importance": "normal",
    "locale": "en-us",
    "webUrl": null,
    "channelIdentity": null,
    "onBehalfOf": null,
    "policyViolation": null,
    "eventDetail": null,
    "from": {
        "application": null,
        "device": null,
        "conversation": null,
        "user": {
            "id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
            "displayName": "Robin Kline",
            "userIdentityType": "aadUser"
        }
    },
    "body": {
        "contentType": "text",
        "content": "Hello World"
    },
    "attachments": [],
    "mentions": [],
    "reactions": [],
    "messageHistory": []
}

Exemple 2 : Importer un message

L’exemple suivant montre comment importer un message. Pour plus d’informations, consultez Importer des messages dans des conversations et des canaux Microsoft Teams à l’aide de Microsoft Graph.

Remarque : l’étendue Teamwork.Migrate.All de l’autorisation est requise pour ce scénario. La conversation cible doit être en mode de migration.

Importante

La createdDateTime doit être unique à la milliseconde près dans la conversation cible. Si un message avec le même createdDateTime existe, la demande échoue avec 409 Conflict. Ajustez la createdDateTime et réessayez. Pour plus d’informations, consultez Importer des messages dans des conversations et des canaux Microsoft Teams à l’aide de Microsoft Graph.

Demande

L’exemple suivant montre comment importer un message dans une conversation au nom d’un utilisateur à l’aide des propriétés createdDateTime et From dans le corps de la demande.

POST https://graph.microsoft.com/beta/chats/19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2/messages

{
   "createdDateTime": "2019-02-04T19:58:15.511Z",
   "from": {
      "user": {
         "id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
         "displayName": "Robin Kline",
         "userIdentityType": "aadUser"
      }
   },
   "body": {
      "contentType": "html",
      "content": "Hello World"
   }
}

Réponse

L’exemple suivant illustre la réponse.

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#chats('19%3A4b6bed8d24574f6a9e436813cb2617d8%40thread.tacv2')/messages/$entity",
    "id": "1616991463150",
    "replyToId": null,
    "etag": "1616991463150",
    "messageType": "message",
    "createdDateTime": "2019-02-04T19:58:15.511Z",
    "lastModifiedDateTime": null,
    "deletedDateTime": null,
    "subject": null,
    "summary": null,
    "chatId": "19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2",
    "importance": "normal",
    "locale": "en-us",
    "webUrl": null,
    "channelIdentity": null,
    "policyViolation": null,
    "eventDetail": null,
    "from": {
        "application": null,
        "device": null,
        "conversation": null,
        "user": {
            "id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
            "displayName": "Robin Kline",
            "userIdentityType": "aadUser"
        }
    },
    "body": {
        "contentType": "html",
        "content": "Hello World"
    },
    "attachments": [],
    "mentions": [],
    "reactions": []
}