HTTP API
 概要
 HTTP APIはAPIサーバーとHTTP通信を行い、チャットサービスを提供します。大きくチャネルAPIとユーザーAPIで構成されています。
 各チャネルAPIとユーザーAPIの主要機能は以下の通りです。
  - チャンネル API - 全チャンネルリスト取得 API
- チャンネル取得 API
- チャンネル参加者取得 API
- チャンネル作成 API
- チャンネル削除 API
- チャンネル入場 API
- チャンネル退場 API
- お知らせメッセージ送信 API
 
- ユーザー API - ユーザートークン発行 API
- ユーザー参加チャンネル取得 API
- ユーザーブロックリスト取得 API
- ユーザーブロック API
- ユーザーブロック解除 API
 
基本情報
 HTTP APIを使用する際に、共通して知っておくべき基本情報を案内します。
 事前準備
 HTTP APIを使用するには、以下の項目を準備する必要があります。
  - Hive認証キー(Hive 인증키): API呼び出しのための認証トークン - Hiveコンソール > アプリセンター > プロジェクト管理 > ゲーム詳細 > 基本情報 で確認可能
 
- ゲームインデックス(Game Index): Hiveコンソール > アプリセンター > プロジェクト管理 で作成したゲームのインデックス
チャンネルの種類
 HTTP APIの送信時に使用されるチャネルの種類は以下の通りです。 
    | タイプ | 説明 | 
    | PUBLIC | 誰でも入場可能なチャンネル | 
  | PRIVATE | パスワードを入力して入場可能なチャンネル | 
  | GROUP | 特定のユーザーのみ参加するチャンネル (例. ギルドチャンネル) | 
  
 リクエストURL
    | サーバー | URL | 
    | LIVE | api-chat.withhive.com | 
  | SANDBOX | sandbox-api-chat.withhive.com | 
  
 共通ヘッダー
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  | Content-Type | リクエストデータのタイプ ( application/json) | string | Y | 
  
 応答コード
     | HTTPステータスコード | コード | メッセージ | 説明 | 
    | 200 | 0 | 成功。 | 成功 | 
  | 400 | 100 | 不正なリクエスト。 | 不正なリクエスト | 
  | 401 | 101 | 無効なトークン。 | 有効ではないトークン | 
  | 403 | 102 | 禁止。 | 権限がありません | 
  | 404 | 103 | 見つかりません。 | 見つかりません | 
  | 405 | 104 | メソッドは許可されていません。 | 許可されていないメソッド | 
  | 500 | 105 | 内部サーバーエラー。 | 内部サーバーエラー | 
  
     | HTTPステータスコード | コード | メッセージ | 説明 | 
    | 400 | 200 | 重複したチャンネルIDです。 | 中複されたチャンネルID | 
  |  | 201 | チャンネルが見つからないか、削除されています。 | チャンネルを見つけることができないか、削除されています。 | 
  |  | 202 | チャンネルが満員です。 | チャンネル参加人数を超えてチャンネルに入れません。 | 
  |  | 203 | 無効なチャンネルパスワードです。 | 有効ではないチャンネルパスワード | 
  |  | 204 | メッセージサイズを超えました。最大サイズは200です。 | メッセージサイズ超過(最大200文字) | 
  |  | 300 | ユーザーがセッションにいません。 | ユーザーがセッションにいない(Socketサーバーに接続していない状態) | 
  |  | 301 | ユーザーがチャンネルにいません。 | ユーザーがチャンネルにいない | 
  |  | 302 | ユーザーはすでにチャンネルにいます。 | ユーザーはすでにチャンネルにいます。 | 
  |  | 303 | ユーザーはすでにブロックされています。 | ユーザーはすでにブロックされています。 | 
  |  | 304 | ブロックリストが満杯です。最大サイズは100です。 | ブロックリストがいっぱいです(最大100人) | 
  |  | 305 | ユーザーはブロックリストにいません。 | ユーザーはブロックリストにいない | 
  |  | 306 | ユーザーはブロックされています。 | ユーザーはブロックされています。 | 
  |  | 307 | ユーザーが入れるチャンネルの最大数は10です。 | 該当ユーザーの入場可能なチャンネル数を超えています(10個制限) | 
  | 403 | 308 | ユーザーはチャンネルの所有者ではありません。 | ユーザーはチャンネルの所有者ではありません。 | 
  
 チャンネルAPI機能
 チャットサービスで使用されるチャンネルAPIの機能別APIリクエストと応答、例コードを説明します。
 全チャンネルリストの取得
 現在生成されたチャンネルの一覧を照会します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels | 
  | HTTP METHOD | GET | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 クエリパラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | type | チャンネルタイプ ( PRIVATE,PUBLIC,GROUP) | string | N | 
  | channelId | 特定のチャンネルIDで始まるチャンネルを取得 | string | N | 
  | channelName | 特定のチャンネル名を含むチャンネルを取得 | string | N | 
  | sort | ソート基準 ( channelId,channelName,regTime)(デフォルト
 regTime) | string | N | 
  | order | ソート方式 ( ASC,DESC)(デフォルト
 DESC) | string | N | 
  | size | 1ページあたり取得するチャンネル数 (最小10件〜最大100件、デフォルト10)
 | integer | N | 
  | page | 取得するページ番号 (1から開始、デフォルト1)
 | integer | N | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | content | チャンネルリスト | array | 
  | page | ページ情報 | object | 
  
 レスポンスボディ > データ > コンテンツ
    | フィールド名 | 説明 | タイプ | 
    | channelId | チャンネル ID | string | 
  | type | チャンネルタイプ ( PRIVATE,PUBLIC,GROUP) | string | 
  | gameIndex | Hive ゲームインデックス | integer | 
  | owner | チャンネル所有者の Hive プレイヤー ID | string | 
  | channelName | チャンネル名 | string | 
  | maxMemberCount | 最大チャンネル参加人数 | integer | 
  | regTime | チャンネル作成日時 ( UTC+0基準,yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 レスポンスボディ > データ > ページ
    | フィールド名 | 説明 | タイプ | 
    | size | 1ページあたりの項目数 | integer | 
  | currentPage | 現在のページ番号 | integer | 
  | totalElements | 全体の項目数 | integer | 
  | totalPages | 全体のページ数 | integer | 
  
 リクエストサンプル
 curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels?type=PUBLIC&sort=regTime&order=DESC&size=10&page=1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "content": [
      {
        "channelId": "open:12345",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Open chat room",
        "maxMemberCount": 50,
        "regTime": "2024-12-30T15:01:01.004Z"
      },
      /// ... Channel Information
    ],
    "page": {
      "size": 10,
      "currentPage": 1,
      "totalElements": 100,
      "totalPages": 10
    }
  }
}
チャンネルの取得
 特定のチャンネルの詳細情報を取得します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} | 
  | HTTP METHOD | GET | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | channelId | 取得するチャンネルID | string | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | info | チャンネル情報 | object | 
  | members | 参加者リスト | array | 
  
 レスポンスボディ > データ > 情報
    | フィールド名 | 説明 | タイプ | 
    | channelId | チャンネル ID | string | 
  | type | チャンネルタイプ ( PRIVATE,PUBLIC,GROUP) | string | 
  | gameIndex | Hive ゲームインデックス | integer | 
  | owner | チャンネルの所有者 | string | 
  | channelName | チャンネル名 | string | 
  | maxMemberCount | 最大チャンネル参加人数 | integer | 
  | regTime | チャンネル作成日時 ( UTC+0基準,yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 レスポンスボディ > データ > メンバー
    | フィールド名 | 説明 | タイプ | 
    | playerId | Hive プレイヤー ID | long | 
  | extraData | 追加データ ( UTF-8基準)(最大 256 Byte)
 | string | 
  | connectedTime | 接続日時 ( UTC+0基準,yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 リクエストサンプル
 curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "info": {
      "channelId": "open:12345",
      "type": "PUBLIC",
      "gameIndex": 1,
      "owner": "SYSTEM",
      "channelName": "오픈채팅방",
        "maxMemberCount": 50,
        "regTime": "2024-12-30T15:01:01.004Z"
    },
    "members": [
      {
        "playerId": 1,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:06.604Z"
      },
      {
        "playerId": 2,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:16.233Z"
      }
    ]
  }
}
チャンネル参加者の取得
 特定のチャンネルの参加者情報を取得します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members | 
  | HTTP METHOD | GET | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | channelId | 取得するチャンネルID | string | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | members | チャンネル参加者リスト | array | 
  
 レスポンスボディ > データ > メンバー
    | フィールド名 | 説明 | タイプ | 
    | playerId | Hive プレイヤー ID | long | 
  | extraData | 追加データ ( UTF-8基準)(最大 256 Byte)
 | string | 
  | connectedTime | 接続日時 ( UTC+0基準,yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 リクエストサンプル
 curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345/members' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "members": [
      {
        "playerId": 1,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:06.604Z"
      },
      {
        "playerId": 2,
        "extraData": null,
        "connectedTime": "2024-11-25T06:22:16.233Z"
      }
    ]
  }
}
チャンネル作成
 新しい会話チャンネルを作成します。
 playerIdが存在する場合、該当ユーザーをチャンネルに入室させます。playerIdがない場合、オーナーはSYSTEMになります。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channel | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channel | 
  | HTTP METHOD | POST | 
  | CONTENT-TYPE | application/json | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  | Content-Type | リクエストデータのタイプ ( application/json) | string | Y | 
  
 リクエストボディ
 チャンネル生成リクエスト時に必要な送信データです。
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | channelId | チャンネル ID (英字の大文字と小文字、数字、一部の特殊文字(
 -,.,_,~,:)が使用可能、最大 100 文字) | string | Y | 
  | playerId | チャンネル作成者の Hive プレーヤー ID | long | N | 
  | password | パスワード ( PRIVATEチャンネルの場合必須)(最大 50 文字)
 | string | N | 
  | channelName | チャンネル名 (最大 50 文字)
 | string | Y | 
  | maxMemberCount | 最大チャンネル参加人数 (最小 2 人 ~ 最大 5,000 人)
 | integer | Y | 
  | type | チャンネルタイプ ( PRIVATE,PUBLIC,GROUP) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | レスポンス結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channel' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data'{
    "channelId": "open:12345",
    "playerId": 1000,
    "channelName": "Open chat room",
    "maxMemberCount": 100,
    "type": "PUBLIC"
}'
レスポンスサンプル
 {
    "code": 0,
    "message": "Success."
}
チャンネル削除
 特定のチャンネルを削除します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} | 
  | HTTP メソッド | DELETE | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | channelId | 削除するチャンネルID | string | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request DELETE 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
レスポンスサンプル
 {
    "code": 0,
    "message": "Success."
}
チャンネル入場
 既存のチャンネルにユーザーを入場させます。
 1人のユーザーが参加できる最大チャンネル数は10個です。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter | 
  | HTTP METHOD | POST | 
  | CONTENT-TYPE | application/json | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | channelId | チャンネルID | string | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  | Content-Type | リクエストデータのタイプ ( application/json) | string | Y | 
  
 リクエストボディ
 チャンネル入場リクエスト時に必要な送信データです。
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | playerId | 入場させるユーザーのHiveプレイヤーID | long | Y | 
  | password | パスワード( PRIVATEチャンネルの場合必須) | string | N | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request POST 'https://api-chat.withhive.com/api/v1/games/1/channels/guild:12345/enter' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data-raw '{
    "playerId": 1001,
    "password": "guildPass123"
}'
レスポンスサンプル
 {
    "code": 0,
    "message": "Success."
}
チャンネル退出
 チャンネルからユーザーを退出させます。チャンネルの所有者が退出する場合、そのチャンネルは削除されます。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit | 
  | HTTP METHOD | POST | 
  | CONTENT-TYPE | application/json | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | channelId | チャンネルID | string | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  | Content-Type | リクエストデータのタイプ ( application/json) | string | Y | 
  
 リクエストボディ
 チャンネル退出リクエスト時に必要な送信データです。
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | playerId | 退場させるユーザーのHiveプレイヤーID | long | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channels/guild:12345/exit' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data '{
    "playerId": 1001
}'
レスポンスサンプル
 {
    "code": 0,
    "message": "Success."
}
お知らせメッセージ送信
 ゲーム内の特定のチャンネルまたは全チャンネルに通知メッセージを送信します。channelIdパラメータがない場合は、該当するgameIndexに生成された全チャンネルに通知メッセージが送信されます。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice | 
  | HTTP METHOD | POST | 
  | CONTENT-TYPE | application/json | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  | Content-Type | リクエストデータのタイプ ( application/json) | string | Y | 
  
 リクエストボディ
 通知メッセージ送信リクエスト時に必要な送信データです。
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | channelId | メッセージを送信するチャネルID ( channelIdがない場合は全チャネルに送信) | string | N | 
  | message | 送信する通知メッセージの内容 | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 説明結果メッセージ | string | 
  
 リクエストサンプル
 curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
    "channelId": "open:12345",
    "message": "Server maintenance is in progress. Please try connecting again later.
}'
レスポンスサンプル
 {
    "code": 0,
    "message": "Success."
}
ユーザーAPI機能
 チャットサービスで使用されるユーザーAPIの機能ごとのAPIリクエストとレスポンス、例のコードを説明します。
 ユーザートークン発行
 Socketサーバー接続のための認証トークンを発行します。
 発行されたトークンを通じて返されたSocketサーバーアドレスに接続します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token | 
  | HTTP METHOD | POST | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | playerId | Hive プレイヤーID | long | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | gameIndex | Hive ゲームインデックス | integer | 
  | socketAddress | Socket サーバーアドレス | string | 
  | token | 発行されたトークン | string | 
  
 リクエストサンプル
 curl  --request POST 'https://api-chat.withhive.com/api/v1/games/1/users/1001/token' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "socketAddress": "wss://test-socket-chat.withhive.com/ws",
    "token": "eyJhbGciOiJIUzI1NiJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg"
  }
}
ユーザー参加チャンネルの取得
 ユーザーが参加しているチャンネルの一覧を取得します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels | 
  | HTTP METHOD | GET | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須 여부 | 
    | gameIndex | Hive ゲームインデックス | integer | Y | 
  | playerId | Hive プレイヤーID | long | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | gameIndex | Hive ゲームインデックス | integer | 
  | playerId | Hive プレイヤーID | long | 
  | channels | チャンネルリスト | array | 
  
 レスポンスボディ > データ > チャンネル
    | フィールド名 | 説明 | タイプ | 
    | channelId | チャンネル ID | string | 
  | type | チャンネルタイプ ( PRIVATE,PUBLIC,GROUP) | string | 
  | gameIndex | Hive ゲームインデックス | integer | 
  | owner | チャンネルの所有者 | string | 
  | channelName | チャンネル名 | string | 
  | maxMemberCount | 最大チャンネル参加人数 | integer | 
  | regTime | チャンネル作成日時 ( UTC+0基準,yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 リクエストサンプル
 curl --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/channels' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "channels": [
      {
        "channelId": "guild:12345",
        "type": "GROUP",
        "gameIndex": 1,
        "owner": "1000",
        "channelName": "Guild chat room",
        "maxMemberCount": 50,
        "regTime": "2023-12-19T15:01:01.004Z"
      },
      {
        "channelId": "open:67890",
        "type": "PUBLIC",
        "gameIndex": 1,
        "owner": "SYSTEM",
        "channelName": "Open chat room",
        "maxMemberCount": 100,
        "regTime": "2023-12-20T10:15:30.123Z"
      }
      // ... 채널
    ]
  }
}
ユーザーブロックリストの取得
 ユーザーがブロックしたユーザーのリストを表示します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks | 
  | HTTP METHOD | GET | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | string | Y | 
  | playerId | Hive プレイヤーID | long | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  | data | 応答データ | object | 
  
 レスポンスボディ > データ
    | フィールド名 | 説明 | タイプ | 
    | gameIndex | Hive ゲームインデックス | integer | 
  | playerId | Hive プレイヤーID | long | 
  | blockedUsers | ブロックリスト | array | 
  
 レスポンスボディ > データ > ブロック
    | フィールド名 | 説明 | タイプ | 
    | blockedPlayerId | ブロックしたユーザーのHiveプレイヤーID | long | 
  | blockedTime | ブロックした日時( UTC+0基準、yyyy-MM-dd'T'HH:mm:ss.SSSZ形式) | string | 
  
 リクエストサンプル
 curl  --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/blocks' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 
レスポンスサンプル
 {
  "code": 0,
  "message": "Success.",
  "data": {
    "gameIndex": 1,
    "playerId": 1001,
    "blocks": [
      {
        "blockedPlayerId": 1002,
        "blockedTime": "2023-12-20T10:15:30.123Z"
      },
      {
        "blockedPlayerId": 1003,
        "blockedTime": "2023-12-21T08:45:12.456Z"
      },
      // ... 차단 목록
    ]
  }
}
ユーザーのブロック
 ユーザーが特定のユーザーをブロックします。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId} | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId} | 
  | HTTP METHOD | POST | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | string | Y | 
  | playerId | Hive プレイヤーID | long | Y | 
  | blockPlayerId | ブロックする Hive プレイヤーID | long | Y | 
  
 ヘッダーパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' 
レスポンスサンプル
 {
  "code": 0,
  "message": "Success."
}
ユーザーのブロック解除
 ユーザーが特定のユーザーのブロックを解除します。
 リクエストURL
    | サーバー | URL | 
    | LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId} | 
  | SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId} | 
  | HTTP METHOD | DELETE | 
  
 パスパラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | gameIndex | Hive ゲームインデックス | string | Y | 
  | playerId | Hive プレイヤー ID | long | Y | 
  | blockedPlayerId | ブロック解除する Hive プレイヤー ID | long | Y | 
  
 ヘッダー パラメータ
    | フィールド名 | 説明 | タイプ | 必須かどうか | 
    | Authorization | API呼び出しのための認証トークン ( Bearer) | string | Y | 
  
 レスポンスボディ
    | フィールド名 | 説明 | タイプ | 
    | code | 応答結果コード | integer | 
  | message | 結果メッセージ | string | 
  
 リクエストサンプル
 curl --request DELETE 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'
レスポンスサンプル
 {
  "code": 0,
  "message": "Success."
}