Enviar mensaje en un chat

Espacio de nombres: microsoft.graph

Enviar un nuevo chatMessage en el chat especificado. Esta API no puede crear un nuevo chat; debe usar el método list chats para recuperar el identificador de un chat existente antes de poder crear un mensaje de chat.

Notas:

  • No se recomienda usar esta API para la migración de datos mediante el flujo de mensajes de creación estándar. Para escenarios de migración de datos, use el flujo de mensajes de importación en su lugar.
  • Es una infracción de los términos de uso para usar Microsoft Teams como archivo de registro. Envíe solo mensajes que los usuarios leerán.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) ChatMessage.Send Chat.ReadWrite, Group.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Teamwork.Migrate.All No disponible.

Solicitud HTTP

POST /chats/{chat-id}/messages

Encabezados de solicitud

Nombre Descripción
Autorización {code} del portador. Necesario.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de un objeto chatMessage .

Respuesta

Si se ejecuta correctamente, este método devuelve un 201 Created código de respuesta y un nuevo objeto chatMessage en el cuerpo de la respuesta.

Ejemplos

Para obtener una lista más completa de ejemplos, vea Crear chatMessage en un canal o chat.

Ejemplo 1: Crear un chatMessage

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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,
    "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": []
}

Ejemplo 2: Importación de un mensaje

En el ejemplo siguiente se muestra cómo importar un mensaje. Para obtener más información, consulte Importación de mensajes en chats y canales de Microsoft Teams mediante Microsoft Graph.

Nota: El ámbito Teamwork.Migrate.All de permisos es necesario para este escenario. El chat de destino debe estar en modo de migración.

Importante

CreatedDateTime debe ser único en milisegundos dentro del chat de destino. Si existe un mensaje con el mismo createdDateTime , se produce un error en la solicitud con 409 Conflict. Ajuste createdDateTime y vuelva a intentarlo. Para obtener más información, consulte Importación de mensajes en chats y canales de Microsoft Teams mediante Microsoft Graph.

Solicitud

En el ejemplo siguiente se muestra cómo importar un mensaje en un chat en nombre de un usuario mediante createdDateTime y las propiedades del cuerpo de la solicitud.

POST https://graph.microsoft.com/v1.0/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"
   }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 201 Created

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$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": []
}