Enviar mensagem em um chat

Namespace: microsoft.graph

Envie uma nova chatMessage no chat especificado. Esta API não pode criar um novo chat; Você deve usar o método de chats de lista para recuperar a ID de um chat existente antes de criar uma mensagem de chat.

Observações:

  • Não recomendamos que você use essa API para migração de dados por meio do fluxo de mensagens padrão de criação. Para cenários de migração de dados, use o fluxo de importação de mensagens .
  • É uma violação dos termos de uso usar o Microsoft Teams como um arquivo de log. Envie apenas mensagens que as pessoas vão ler.

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) ChatMessage.Send Chat. ReadWrite, Group.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Aplicativo Teamwork.Migrate.All Indisponível.

Solicitação HTTP

POST /chats/{chat-id}/messages

Cabeçalhos de solicitação

Nome Descrição
Autorização Portador {código}. Obrigatório.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON de um objeto chatMessage .

Resposta

Se for bem-sucedido, esse método retornará um código de 201 Created resposta e um novo objeto chatMessage no corpo da resposta.

Exemplos

Para obter uma lista mais abrangente de exemplos, consulte Criar chatMessage em um canal ou chat.

Exemplo 1: criar um chatMessage

Solicitação

O exemplo a seguir mostra uma solicitação.

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

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

Resposta

O exemplo a seguir mostra a resposta.

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

Exemplo 2: Importar uma mensagem

O exemplo a seguir mostra como importar uma mensagem. Para obter mais informações, consulte Importar mensagens para chats e canais do Microsoft Teams usando o Microsoft Graph.

Observação: o escopo Teamwork.Migrate.All de permissão é necessário para este cenário. O chat de destino deve estar no modo de migração.

Importante

O createdDateTime deve ser exclusivo até milissegundos no chat de destino. Se existir uma mensagem com o mesmo createdDateTime , a solicitação falhará com 409 Conflict. Ajuste o createdDateTime e tente novamente. Para obter mais informações, consulte Importar mensagens para chats e canais do Microsoft Teams usando o Microsoft Graph.

Solicitação

O exemplo a seguir mostra como importar uma mensagem para um chat em nome de um usuário usando as propriedades createdDateTime e from no corpo da solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

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