Enviar mensaje en un chat

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

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 crear un mensaje de chat.

Notas:

  • No le recomendamos que utilice esta API para la migración de datos a través del flujo de mensajes de creación estándar. Para escenarios de migración de datos, utilice el flujo de importación de mensajes en su lugar.
  • Usar Microsoft Teams como archivo de registro constituye una infracción de los términos de uso . Envía solo los mensajes que los usuarios leerán.

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos 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 tiene éxito, 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, consulte Crear chatMessage en un canal o un chat.

Ejemplo 1: Crear un chatMessage

Solicitud

En el ejemplo siguiente se muestra la solicitud.

POST https://graph.microsoft.com/beta/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/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": []
}

Ejemplo 2: Importar un mensaje

En el ejemplo siguiente se muestra cómo importar un mensaje. Para obtener más información, vea Importar mensajes a chats y canales de Microsoft Teams con Microsoft Graph.

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

Importante

La createdDateTime debe ser única hasta el milisegundo dentro del chat de destino. Si existe un mensaje con el mismo createdDateTime , se produce un error en la solicitud con 409 Conflict. Ajuste el valor de createdDateTime e inténtelo de nuevo. Para obtener más información, vea Importar mensajes a chats y canales de Microsoft Teams con Microsoft Graph.

Solicitud

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

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"
   }
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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": []
}