メッセージメッセージルームのメッセージ取得

チャットルームのメッセージ取得

概要

指定されたチャットルームのメッセージ履歴を取得します。時間範囲によるフィルタリングやページネーションをサポートしています。この API はメッセージリストと同じエンドポイント GET /rooms/{id}/messages/v3 を使用していますが、このページでは一般的な照会シナリオと例に焦点を当てています。


API エンドポイント

チャットルームの全メッセージ取得

指定されたチャットルームのメッセージ履歴を取得します。ページネーションと時間によるフィルタリングをサポートしています。

GET /rooms/{id}/messages/v3

ヘッダー

パラメータ必須説明
IM-CLIENT-KEYstringクライアントキー
IM-Authorizationstringユーザートークン

パスパラメータ

パラメータ必須説明
idstringチャットルーム ID

クエリパラメータ

パラメータ必須説明
limitnumber返されるメッセージの最大数(デフォルト:20、推奨 50-100)
beforeMessagestring指定したメッセージ ID より前のメッセージを照会(過去方向へのページネーション用)
afterMessagestring指定したメッセージ ID より後のメッセージを照会(未来方向へのページネーション用)
afterTimestring指定した時間以降のメッセージを照会(ISO-8601 またはミリ秒タイムスタンプ形式)
timeRangeFieldstring時間範囲照会の基準フィールド:updatedAt, createdAt, messageTime(デフォルト:updatedAt)

リクエスト例

チャットルームの最新メッセージを取得

GET /rooms/demo-room/messages/v3?limit=50 HTTP/1.1
IM-CLIENT-KEY: {IM-CLIENT-KEY}
IM-Authorization: {IM-Authorization}
Host: your-app.imkit.io
Connection: close

履歴メッセージの取得(ページネーション)

GET /rooms/demo-room/messages/v3?limit=50&beforeMessage=5f890cf37d980e06f6aaf349 HTTP/1.1
IM-CLIENT-KEY: {IM-CLIENT-KEY}
IM-Authorization: {IM-Authorization}
Host: your-app.imkit.io
Connection: close

特定時間以降のメッセージを取得

GET /rooms/demo-room/messages/v3?afterTime=2024-01-01T00:00:00Z&limit=100 HTTP/1.1
IM-CLIENT-KEY: {IM-CLIENT-KEY}
IM-Authorization: {IM-Authorization}
Host: your-app.imkit.io
Connection: close

JavaScript 例:

const response = await axios.get(
  `https://your-app.imkit.io/rooms/demo-room/messages/v3`,
  {
    params: {
      limit: 50,
    },
    headers: {
      "IM-CLIENT-KEY": IM_CLIENT_KEY,
      "IM-Authorization": TOKEN,
    },
  }
);

cURL 例:

curl -X "GET" "https://your-app.imkit.io/rooms/demo-room/messages/v3?limit=50" \
     -H 'IM-CLIENT-KEY: {IM-CLIENT-KEY}' \
     -H 'IM-Authorization: {IM-Authorization}'

レスポンス

成功(200 OK)

パラメータ説明
RCnumberレスポンスコード(0は成功)
RMstringレスポンスメッセージ
resultobjectメッセージ照会結果

照会結果の構造

パラメータ説明
totalCountnumberチャットルーム内のメッセージ総数
dataarrayメッセージ配列(時系列順)
userDeletedIDsarray現在のユーザーが削除したメッセージ ID の配列
inspectobject診断情報(照会条件と実行時間を含む)

メッセージオブジェクトの構造

パラメータ説明
_idstringメッセージ一意識別子
messageanyメッセージ内容
roomstring所属チャットルーム ID
senderobject送信者情報
messageTypestringメッセージタイプ
messageTimeMSnumberメッセージ送信時間(ミリ秒タイムスタンプ)
updatedAtMSnumberメッセージ更新時間(ミリ秒タイムスタンプ)
createdAtMSnumberメッセージ作成時間(ミリ秒タイムスタンプ)
reactionsarrayメッセージへのリアクションリスト
reactionCountnumberリアクション総数

レスポンス例

{
  "RC": 0,
  "RM": "OK",
  "result": {
    "totalCount": 245,
    "inspect": {
      "query": {
        "appID": "SampleApp",
        "room": "demo-room",
        "status": { "$ne": 0 }
      },
      "tookMS": 8
    },
    "data": [
      {
        "reactions": [],
        "_id": "5f890cf37d980e06f6aaf349",
        "message": "Hello everyone! Welcome to our chat room.",
        "room": "demo-room",
        "sender": {
          "_id": "user123",
          "nickname": "Alice",
          "avatarUrl": "https://example.com/avatar1.jpg",
          "id": "user123",
          "lastLoginTimeMS": 1640995200000
        },
        "messageType": "text",
        "id": "5f890cf37d980e06f6aaf349",
        "messageTimeMS": 1640995200000,
        "updatedAtMS": 1640995200001,
        "createdAtMS": 1640995200001,
        "reactionCount": 0
      }
    ],
    "userDeletedIDs": []
  }
}

エラーレスポンス

401 Unauthorized - 認証失敗

{
  "RC": 401,
  "RM": "Unauthorized",
  "error": {
    "code": "INVALID_TOKEN",
    "message": "Invalid or expired token"
  }
}

403 Forbidden - 権限不足

{
  "RC": 403,
  "RM": "Forbidden",
  "error": {
    "code": "NOT_ROOM_MEMBER",
    "message": "User is not a member of this room"
  }
}

404 Not Found - チャットルームが存在しない

{
  "RC": 404,
  "RM": "Room not found",
  "error": {
    "code": "ROOM_NOT_FOUND",
    "message": "Room with specified ID does not exist"
  }
}

使用シーン

チャットルームの読み込み

  • 初期読み込み: ユーザーがチャットルームに入った時に最新メッセージを読み込みます。
  • 履歴閲覧: ユーザーが上にスクロールして過去のメッセージ履歴を表示します。
  • リフレッシュ: チャットルームの全対話内容を再読み込みします。

メッセージの同期

  • オフライン同期: ユーザーが再ログインした時に不在時のメッセージを同期します。
  • マルチデバイス同期: 複数のデバイス間でメッセージの一貫性を保ちます。
  • バックアップからの復元: バックアップからチャットルームの全履歴を復元します。

コンテンツ分析

  • 対話分析: チャットルーム内の対話パターンや人気トピックを分析します。
  • アクティビティ統計: チャットルームのメッセージ量とユーザー参加度を集計します。
  • コンテンツ監査: チャットルーム内のすべての対話内容を監査します。

注意事項

  • 権限要件: チャットルームのメンバーのみがメッセージ内容を取得できます。
  • ページネーションの推奨: 一度に大量のデータを読み込むのを避けるため、適切な limit 値(20-100)を使用することをお勧めします。
  • 時間順: メッセージは updatedAt 時間でソートされ、最新メッセージが最初になります。
  • 削除済みメッセージの処理: userDeletedIDs 配列には現在のユーザーが削除したメッセージが含まれているため、UI でフィルタリングする必要があります。
  • パフォーマンス最適化: 大規模なチャットルームでは、照会パフォーマンスを向上させるために時間範囲の制限を使用することをお勧めします。
  • リアルタイム更新: この API は一括読み込みに適しています。リアルタイムメッセージには WebSocket 接続の使用をお勧めします。
© 2026 FUNTEK Software Inc. All rights reserved.