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

Пространство имен: 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": []
}