チャットにメッセージを送信する

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

指定したチャットに新しい chatMessage を送信します。 この API では、新しいチャットを作成できません。チャット メッセージを作成する前に、 List Chats メソッドを使用して既存のチャットの ID を取得する必要があります。

:

  • 標準の作成メッセージ フローを介したデータ移行には、この API を使用することはお勧めしません。 データ移行シナリオの場合は、代わりに インポート メッセージ フローを使用してください。
  • Microsoft Teams をログ ファイルとして使用することは 、利用規約 に違反します。 ユーザーが読むメッセージのみを送信します。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) ChatMessage.Send Chat.ReadWrite、Group.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Teamwork.Migrate.All 注意事項なし。

HTTP 要求

POST /chats/{chat-id}/messages

要求ヘッダー

名前 説明
Authorization ベアラー {code}。 必須です。

要求本文

要求本文で、chatMessage オブジェクトの JSON 表記を指定します。

応答

成功した場合、このメソッドは 201 Created 応答コードと、応答本文で chatMessage オブジェクトを返します。

より広範な例の一覧については、「チャネルまたはチャット chatMessage を作成する」を参照してください。

例 1:chatMessage を作成する

要求

次の例は要求を示しています。

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

例 2:メッセージをインポートする

メッセージをインポートする方法の例を次に示します。 詳細については、「 Microsoft Graph を使用してメッセージを Microsoft Teams のチャットやチャネルにインポートする」を参照してください。

: このシナリオでは、アクセス許可スコープ Teamwork.Migrate.All が必要です。 ターゲット チャットは移行モードである必要があります。

重要

createdDateTime は、ターゲット チャット内でミリ秒単位まで一意である必要があります。 同じ createdDateTime のメッセージが存在する場合、要求は 409 Conflict で失敗します。 createdDateTime を調整して再試行します。 詳細については、「 Microsoft Graph を使用してメッセージを Microsoft Teams のチャットやチャネルにインポートする」を参照してください。

要求

次の例は、 createdDateTime と要求本文の from プロパティを使用して、ユーザーに代わってメッセージをチャットにインポートする方法を示しています。

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

応答

次の例は応答を示しています。

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