Отправка сообщения в чате

Пространство имен: microsoft.graph

Отправьте новый chatMessage в указанном чате. Этот API не может создать новый чат; Перед созданием сообщения чата необходимо использовать метод list chats для получения идентификатора существующего чата.

Примечания.

  • Не рекомендуется использовать этот API для переноса данных через стандартный поток сообщений создания. В сценариях переноса данных используйте поток сообщений импорта .
  • Использование Microsoft Teams в качестве файла журнала является нарушением условий использования . Отправлять только сообщения, которые будут читать пользователи.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) ChatMessage.Send Chat.ReadWrite, Group.ReadWrite.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Для приложений Teamwork.Migrate.All Недоступно.

HTTP-запрос

POST /chats/{chat-id}/messages

Заголовки запросов

Имя Описание
Авторизация Bearer {код}. Обязательно.

Текст запроса

В тексте запроса укажите представление объекта chatMessage в формате JSON.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 201 Created и новый объект chatMessage в тексте отклика.

Примеры

Более полный список примеров см. в статье Создание chatMessage в канале или чате.

Пример 1. Создание chatMessage

Запрос

Ниже показан пример запроса.

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

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

Отклик

Ниже показан пример отклика.

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

Пример 2. Импорт сообщения

В следующем примере показано, как импортировать сообщение. Дополнительные сведения см . в статье Импорт сообщений в чаты и каналы Microsoft Teams с помощью Microsoft Graph.

Примечание. Для этого сценария требуется область Teamwork.Migrate.All разрешений. Целевой чат должен находиться в режиме миграции.

Важно!

Значение createdDateTime должно быть уникальным вплоть до миллисекунда в целевом чате. Если существует сообщение с тем же createdDateTime , запрос завершается ошибкой с 409 Conflict. Настройте createdDateTime и повторите попытку. Дополнительные сведения см . в статье Импорт сообщений в чаты и каналы Microsoft Teams с помощью Microsoft Graph.

Запрос

В следующем примере показано, как импортировать сообщение в чат от имени пользователя с помощью createdDateTime и из свойств в тексте запроса.

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

Отклик

Ниже приводится пример отклика.

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