HTTP API 概要 私たちはHTTPを介してチャットサービスを提供しています。これは主にChannel API 、User API 、およびMessage API で構成されています。
チャンネルAPI すべてのチャンネルリストAPI チャンネル取得API チャンネル参加者取得API チャンネル作成API チャンネル削除API チャンネル入場API チャンネル退出API ユーザーAPI ユーザートークン発行API ユーザー参加チャンネル取得API ユーザーブロックリスト取得API ユーザーブロックAPI ユーザーブロック解除API メッセージAPI チャンネルアナウンスメッセージ送信API ユーザーアナウンスメッセージ送信API チャンネルカスタムメッセージ送信API ユーザーカスタムメッセージ送信API チャンネルメッセージ取得API 基本情報 HTTP APIを使用する際、共通して知っておくべき基本情報を提供します。
辞書の準備 HTTP APIを使用するには、以下のアイテムを準備する必要があります。
Hive 認証キー: API 呼び出しのための認証トークン Hive コンソール > アプリセンター > プロジェクト管理 > ゲーム詳細 > 基本情報 で確認できます ゲームインデックス: 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 ユーザーがセッションに参加していません。 ユーザーがセッションに参加していません(ソケットサーバーに接続されていない) 301 ユーザーがチャンネルに参加していません。 ユーザーがチャンネルに参加していません 302 ユーザーはすでにチャンネルに参加しています。 ユーザーはすでにチャンネルに参加しています 303 ユーザーはすでにブロックされています。 ユーザーはすでにブロックされています 304 ブロックリストが満杯です。最大サイズは100です。 ブロックリストが満杯です(最大100ユーザー) 305 ユーザーはブロックリストにいません。 ユーザーはブロックリストにいません 306 ユーザーはブロックされています。 ユーザーはブロックされています 307 ユーザーが参加できるチャンネルの最大数は10です。 ユーザーは許可されたチャンネルの最大数を超えました(10の制限) 400 カスタムメッセージサイズを超えました。最大サイズは8,000バイトです。 カスタムメッセージサイズを超えました(最大8,000バイト) 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 メソッド GET
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) 文字列 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、デフォルト10) integer N page クエリするページ番号 (1から開始、デフォルト1) integer N
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ content チャンネルリスト オブジェクト配列 page ページ情報 オブジェクト
レスポンスボディ > データ > コンテンツ フィールド名 説明 タイプ channelId チャンネルID 文字列 type チャンネルタイプ(PRIVATE
, PUBLIC
, GROUP
) 文字列 gameIndex Hive ゲームインデックス 整数 owner Hive チャンネルオーナーのプレイヤーID 文字列 channelName チャンネル名 文字列 memberCount チャンネルの現在の参加者数 整数 maxMemberCount チャンネルの最大参加者数 整数 chatHistoryAllowed メッセージ履歴の取得が許可されているかどうか ブール値 regTime チャンネル作成日時(UTC+0
に基づく、フォーマットyyyy-MM-dd'T'HH:mm:ss.SSSZ
) 文字列 regTimeMillis チャンネル作成日時(UnixTimestampミリ秒) 長整数
レスポンスボディ > データ > ページ フィールド名 説明 タイプ size ページあたりのアイテム数 整数 currentPage 現在のページ番号 整数 totalElements アイテムの総数 整数 totalPages ページの総数 整数
リクエストサンプル 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" : "오픈 채팅방" ,
"memberCount" : 2 ,
"maxMemberCount" : 50 ,
"chatHistoryAllowed" : true ,
"regTime" : "2024-12-30T15:01:01.004Z" ,
"regTimeMillis" : 1731306364351
},
/// ... channel info
],
"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 メソッド GET
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y channelId クエリするチャンネルID 文字列 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ info チャンネル情報 オブジェクト members 参加者リスト オブジェクト配列
レスポンスボディ > データ > 情報 フィールド名 説明 タイプ channelId チャンネルID string type チャンネルタイプ(PRIVATE
, PUBLIC
, GROUP
) string gameIndex Hive ゲームインデックス integer owner チャンネルオーナー string channelName チャンネル名 string memberCount チャンネル内の現在の参加者数 integer maxMemberCount チャンネル内の最大参加者数 integer chatHistoryAllowed メッセージ履歴の取得が許可されているかどうか boolean regTime チャンネル作成日時(UTC+0
に基づく、形式yyyy-MM-dd'T'HH:mm:ss.SSSZ
) string regTimeMillis チャンネル作成日時(UnixTimestampミリ秒) long
レスポンスボディ > データ > メンバー フィールド名 説明 タイプ playerId Hive プレイヤーID long connectedTime 接続時間(UTC+0
に基づく、フォーマットyyyy-MM-dd'T'HH:mm:ss.SSSZ
) string connectedTimeMillis 接続時間(Unix タイムスタンプミリ秒) long
リクエストサンプル 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" : "오픈채팅방" ,
"memberCount" : 2 ,
"maxMemberCount" : 50 ,
"chatHistoryAllowed" : true ,
"regTime" : "2024-12-30T15:01:01.004Z" ,
"regTimeMillis" : 1731306364351
},
"members" : [
{
"playerId" : 1 ,
"connectedTime" : "2024-11-25T06:22:06.604Z" ,
"connectedTimeMillis" : 1739328218507
},
{
"playerId" : 2 ,
"connectedTime" : "2024-11-25T06:22:16.233Z" ,
"connectedTimeMillis" : 1731306364351
}
]
}
}
チャンネル参加者クエリ チャンネル参加者情報を取得しています。
リクエスト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 メソッド GET
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y channelId クエリするチャンネルID 文字列 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ members チャンネル参加者のリスト オブジェクト配列
レスポンスボディ > データ > メンバー フィールド名 説明 型 playerId Hive プレイヤーID long connectedTime 接続時間(UTC+0
に基づく、形式yyyy-MM-dd'T'HH:mm:ss.SSSZ
) string connectedTimeMillis 接続時間(Unix タイムスタンプミリ秒) long
リクエストサンプル 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 ,
"connectedTime" : "2024-11-25T06:22:06.604Z" ,
"connectedTimeMillis" : 1739328218507
},
{
"playerId" : 2 ,
"connectedTime" : "2024-11-25T06:22:16.233Z" ,
"connectedTimeMillis" : 1731306364351
}
]
}
}
チャンネルを作成する 新しいチャンネルを作成しています。
リクエストボディにplayerId
を入力すると、その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 メソッド POST
コンテンツタイプ application/json
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y
ヘッダー パラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) 文字列 Y Content-Type リクエストデータのタイプ(application/json
) 文字列 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 chatHistoryAllowed メッセージ履歴が表示できるかどうか (デフォルトはfalse) boolean N
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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": "오픈 채팅방",
"maxMemberCount": 100,
"type": "PUBLIC",
"chatHistoryAllowed": true
}'
レスポンスサンプル {
"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 ゲームインデックス 整数 Y channelId 削除するチャネルID 文字列 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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."
}
チャンネルに入る チャンネルにユーザーを追加しています。
ユーザーごとに入力できる最大チャネル数は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 ゲームインデックス 整数 Y channelId チャンネルID 文字列 Y
ヘッダー パラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) string Y Content-Type リクエストデータのタイプ(application/json
) string Y
リクエストボディ チャンネルに入るリクエストをする際に必要なデータです。
フィールド名 説明 タイプ 必須 playerId 入場するユーザーのプレイヤーID Hive long Y password パスワード(PRIVATE
チャンネルに必要) string N
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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 '{
"playerId": 1001,
"password": "guildPass123"
}'
レスポンスサンプル {
"code" : 0 ,
"message" : "Success."
}
チャンネルの終了 チャンネルに参加したユーザーを削除しています。チャンネルの所有者が離れても、チャンネルは残ります。チャンネルの所有者がSYSTEM
でない参加者のいないチャンネルは、定期的に削除されます。
リクエスト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 ゲームインデックス 整数 Y channelId チャンネルID 文字列 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) string Y Content-Type リクエストデータのタイプ (application/json
) string Y
リクエストボディ これはチャンネルを退出する際に必要な送信データです。
フィールド名 説明 タイプ 必須 playerId 削除されるユーザーのプレイヤーID Hive long Y
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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."
}
ユーザーAPIの機能 これは、チャットサービスで使用されるユーザーAPIのAPIリクエストとレスポンス、およびサンプルコードについて説明しています。
ユーザートークンの発行 ソケットサーバーに接続するための認証トークンを発行しています。
発行されたトークンを通じて返されたソケットサーバーアドレスに接続します。
リクエスト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 メソッド POST
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y playerId Hive プレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ gameIndex Hive ゲームインデックス 整数 socketAddress ソケットサーバーアドレス 文字列 token 発行されたトークン 文字列
リクエストサンプル 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 ゲームインデックス 整数 Y playerId Hive プレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) 文字列 Y
応答本文 フィールド名 説明 型 code 応答結果コード 整数 message 結果メッセージ 文字列 data 応答データ オブジェクト
レスポンスボディ > データ フィールド名 説明 型 gameIndex Hive ゲームインデックス 整数 playerId Hive プレイヤーID 長整数 channels チャンネルのリスト オブジェクト配列
レスポンスボディ > データ > チャンネル フィールド名 説明 タイプ channelId チャンネルID 文字列 type チャンネルタイプ(PRIVATE
, PUBLIC
, GROUP
) 文字列 gameIndex Hive ゲームインデックス 整数 owner チャンネルオーナー 文字列 channelName チャンネル名 文字列 memberCount 現在のチャンネル参加者数 整数 maxMemberCount 最大チャンネル参加者数 整数 chatHistoryAllowed メッセージ履歴の取得が許可されているか ブール値 regTime チャンネル作成日時(UTC+0
に基づく、形式yyyy-MM-dd'T'HH:mm:ss.SSSZ
) 文字列 regTimeMillis チャンネル作成日時(UnixTimestampミリ秒) 長整数
リクエストサンプル 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" : "길드 채팅방" ,
"memberCount" : 1 ,
"maxMemberCount" : 50 ,
"chatHistoryAllowed" : true ,
"regTime" : "2023-12-19T15:01:01.004Z" ,
"regTimeMillis" : 1731306364351
},
{
"channelId" : "open:67890" ,
"type" : "PUBLIC" ,
"gameIndex" : 1 ,
"owner" : "SYSTEM" ,
"channelName" : "오픈 채팅방" ,
"memberCount" : 2 ,
"maxMemberCount" : 100 ,
"chatHistoryAllowed" : true ,
"regTime" : "2023-12-20T10:15:30.123Z" ,
"regTimeMillis" : 1731302348750
}
// ... 채널
]
}
}
ユーザーブロックリストの取得 ユーザーによってブロックされたユーザーのリストを取得しています。
リクエスト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 メソッド GET
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 文字列 Y playerId Hive プレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ gameIndex Hive ゲームインデックス 整数 playerId Hive プレイヤーID 長整数 blockedUsers ブロックされたリスト オブジェクト配列
レスポンスボディ > データ > ブロックされたユーザー フィールド名 説明 タイプ blockedPlayerId ブロックされたユーザーのプレイヤーID Hive long blockedTime ブロックの時間(UTC+0
に基づく、フォーマットyyyy-MM-dd'T'HH:mm:ss.SSSZ
) string blockedTimeMillis ブロックの時間(Unix タイムスタンプミリ秒) long
リクエストサンプル 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 ,
"blockedUsers" : [
{
"blockedPlayerId" : 1002 ,
"blockedTime" : "2023-12-20T10:15:30.123Z" ,
"blockedTimeMillis" : 1739329550811
},
{
"blockedPlayerId" : 1003 ,
"blockedTime" : "2023-12-21T08:45:12.456Z" ,
"blockedTimeMillis" : 1739329553137
},
// ... 차단 목록
]
}
}
ユーザーブロック 他のユーザーをブロックする。これはリアルタイムメッセージの送受信を制限する機能です。
リクエスト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 ゲームインデックス 文字列 Y playerId Hive プレイヤーID 長整数 Y blockPlayerId ブロックされた Hive プレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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 ゲームインデックス 文字列 Y playerId Hive プレイヤーID 長整数 Y blockedPlayerId Hive アンブロックするプレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 型 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 結果メッセージ 文字列
リクエストサンプル 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."
}
メッセージAPIの機能 これは、通知メッセージやカスタムメッセージを送信するためのAPIであり、特定のチャネルからメッセージ履歴を取得するためのものです。
チャンネル通知メッセージ送信 特定のチャンネルまたはすべてのチャンネルにアナウンスメッセージを送信します。
リクエスト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 メソッド POST
CONTENT-TYPE application/json
パスパラメータ フィールド名 説明 型 必須 gameIndex Hive ゲームインデックス 整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) string Y Content-Type リクエストデータのタイプ(application/json
) string Y
リクエストボディ 通知メッセージを送信する際に必要な送信データです。
フィールド名 説明 タイプ 必須 channelId メッセージを送信するチャンネルID(指定がない場合はすべてのチャンネルに送信) string N langCode メッセージを送信するユーザーのHive言語コード(指定がない場合は言語に関係なく送信) (ISO 639 alpha-2に基づき、ISO 639 alpha-2で区別されない言語はScriptタグで区切る必要があります) string N message 送信されるアナウンスメッセージの内容 (最大200文字) string Y
チャンネルID channelId
がない場合、PathパラメータgameIndex
はアプリに存在するすべてのチャネルにメッセージを送信します。
言語コード langCode
が存在しない場合、メッセージは言語に関係なくすべてのユーザーに配信されます。
langCode
がある場合、メッセージを受け取るユーザーはフィールドの値によって異なります。たとえば、langCode
がen
の場合、通知メッセージはクライアント接続時にリクエストボディのlangCode
がen
であるユーザーにのみ送信されます 。
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 結果メッセージの説明 文字列
リクエストサンプル 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",
"langCode": "en",
"message": "서버 점검이 있습니다. 잠시 후 다시 접속해 주세요."
}'
応答サンプル {
"code" : 0 ,
"message" : "Success."
}
ユーザー通知メッセージ送信 ユーザーに通知メッセージを送信しています。
リクエストURL サーバー URL LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice/users/{playerId}
HTTP メソッド POST
CONTENT-TYPE application/json
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y playerId Hive プレイヤーID 長整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) string Y Content-Type リクエストデータのタイプ(application/json
) string Y
リクエストボディ 通知メッセージを送信する際に必要な伝送データです。
フィールド名 説明 タイプ 必須 langCode メッセージが送信されるユーザーのHive言語コード(提供されていない場合は言語に関係なく送信される) (ISO 639 alpha-2に基づく、ISO 639 alpha-2で区別されない言語はScriptタグで区切る必要があります) 文字列 N message 送信される通知メッセージの内容 (最大200文字) 文字列 Y
言語コード langCode
がない場合、言語に関係なくplayerId
ユーザーにメッセージを送信します。
langCode
がある場合、ユーザー通知メッセージは、APIリクエストボディ内のlangCode
がクライアント接続時のリクエストボディ内のlangCode
と一致する場合にのみ送信されます。たとえば、playerId=1111
のユーザーがlangCode=en
でチャットクライアントに接続し、ユーザー通知メッセージ送信APIがplayerId=1111, langCode=ja
で呼び出された場合、このユーザーには通知メッセージは送信されません。
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 説明結果メッセージ 文字列
リクエストサンプル curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice/users/123123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"langCode": "en",
"message": "123123 님에게 보내는 공지 메시지입니다."
}'
レスポンスサンプル {
"code" : 0 ,
"message" : "Success."
}
チャンネルカスタムメッセージを送信 チャンネルに参加したすべてのユーザーにカスタムメッセージを送信します。
リクエストURL サーバー URL LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/channels/{channelId}
HTTP METHOD POST
CONTENT-TYPE application/json
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y channelId メッセージを受信するためのチャネルID 文字列 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) string Y Content-Type リクエストデータのタイプ(application/json
) string Y
リクエストボディ カスタムメッセージを送信する際に必要な送信データです。
フィールド名 説明 タイプ 必須 message 送信されるカスタムメッセージの内容 (UTF-8
ベース) (最大8,000バイト) 文字列 Y
レスポンスボディ フィールド名 説明 タイプ code レスポンス結果コード 整数 message 説明結果メッセージ 文字列
リクエストサンプル curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/channels/public:123' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"message": "커스텀 메시지입니다."
}'
応答サンプル {
"code" : 0 ,
"message" : "Success."
}
ユーザーにカスタムメッセージを送信 ユーザーにカスタムメッセージを送信しています。
リクエストURL サーバー URL LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/custom-message/users
HTTP メソッド POST
CONTENT-TYPE application/json
パスパラメータ フィールド名 説明 タイプ 必須 gameIndex Hive ゲームインデックス 整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン(Bearer
) string Y Content-Type リクエストデータのタイプ(application/json
) string Y
リクエストボディ カスタムメッセージを送信する際に必要な送信データです。
フィールド名 説明 タイプ 必須 playerIds メッセージを受信するためのアカウント識別子のコレクション Hive プレイヤーIDリスト (最大10個) long array Y message 送信されるカスタムメッセージの内容(UTF-8
ベース) (最大8,000バイト) string Y
レスポンスボディ フィールド名 説明 タイプ code 応答結果コード 整数 message 説明結果メッセージ 文字列
リクエストサンプル curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/custom-message/users' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"playerIds": [
123123
],
"message": "커스텀 메시지입니다."
}'
レスポンスサンプル {
"code" : 0 ,
"message" : "Success."
}
チャンネルメッセージ履歴の取得 チャンネルメッセージ履歴を取得しています。チャンネルメッセージ履歴はカーソルベースのページネーションで提供され、過去30日間のチャンネルメッセージ履歴のみが取得できます。このAPIはチャンネル設定で以前の会話履歴を表示するオプションが有効になっている場合にのみ使用できます。 APIレスポンスで受け取ったチャンネルメッセージ履歴には、ブロックされたユーザー からの過去のメッセージが含まれる場合があります。
ページネーション: サイズとインデックス クエリパラメータindex
を使用してページネーションを提供します。index
のデフォルト値はなく、index
なしでリクエストが行われた場合、指定されたsize
までの最新のチャットメッセージが返されます。
たとえば、index
なしでsize=5
を指定してAPIを呼び出すと、5つの最も最近のチャット履歴と、次の履歴を受け取るためのnextIndex
(たとえば、68009c30780e4f2d9830d8a0
のような値)が返されます。
index=68009c30780e4f2d9830d8a0
と size=5
を使ってAPIを再呼び出しすると、以前に返された最後のチャット履歴の後に発生した5つのチャット記録が返されます。
ページネーション: 次がある レスポンス値hasNext
がtrue
の場合、過去のチャット履歴がさらにあることを意味します。言い換えれば、レスポンス値nextIndex
をindex
として使用して、さらに以前のチャネルメッセージ履歴を取得できます。
リクエストURL サーバー URL LIVE https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
SANDBOX https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/messages
HTTP メソッド GET
パスパラメータ フィールド名 説明 型 必須 gameIndex Hive ゲームインデックス 整数 Y channelId クエリするチャンネルID 整数 Y
ヘッダーパラメータ フィールド名 説明 タイプ 必須 Authorization API呼び出しの認証トークン (Bearer
) 文字列 Y
クエリパラメータ チャネルメッセージの取得をリクエストする際に必要なクエリ文字列データです。
フィールド名 説明 タイプ 必須 size チャンネル履歴のサイズ (最小1 ~ 最大50) 整数 Y index 取得に使用するインデックス(指定しない場合は、最も最近のメッセージを取得) 文字列 N
レスポンスボディ フィールド名 説明 型 code レスポンス結果コード 整数 message 説明結果メッセージ 文字列 data レスポンスデータ オブジェクト
レスポンスボディ > データ フィールド名 説明 タイプ hasNext 追加の取得が可能かどうか boolean nextIndex 次の取得に使用するインデックス string content チャンネルメッセージ履歴 オブジェクト配列
レスポンスボディ > データ > コンテンツ フィールド名 説明 タイプ gameIndex Hive ゲームインデックス 整数 from メッセージを受信したアカウントの識別子 Hive プレイヤーID 長整数 extraData ユーザーの追加情報(UTF-8
ベース) (最大256バイト) 文字列 to メッセージを送信したチャネルID 文字列 message メッセージ内容 文字列 langCode Hive 言語コード (ISO 639 alpha-2に基づく、ISO 639 alpha-2で区別されない言語はスクリプトタグで区切る必要があります) 文字列 timestamp メッセージが送信された日時(UTC+0
ベース、yyyy-MM-dd'T'HH:mm:ss.SSSZ
形式) 文字列 timestampMillis メッセージが送信された日時(UnixTimestampミリ秒) 長整数
リクエストサンプル curl --request GET 'https://test-api-chat.withhive.com/api/v1/games/1/channels/open:1/messages?size=50' \
--header 'Authorization: hivechat 005056fffea3fd10-000400fd-00000797-f67881178d98d1cd-64ae9a76'
レスポンスサンプル {
"code" : 0 ,
"message" : "Success." ,
"data" : {
"hasNext" : true ,
"nextIndex" : "67c7d83336af25202c1c0ad4" ,
"content" : [
// as size=50, returns 50 objects each of which is like the followings.
{
"gameIndex" : 1 ,
"from" : 1111112 ,
"extraData" : "김하이브" ,
"to" : "open:10" ,
"message" : "zzz" ,
"langCode" : "ko" ,
"timestamp" : "2025-03-05T04:50:59.757Z" ,
"timestampMillis" : 1741150259757
},
{
"gameIndex" : 1 ,
"from" : 1111111 ,
"extraData" : null ,
"to" : "open:10" ,
"message" : "하이브2" ,
"langCode" : "ko" ,
"timestamp" : "2025-03-05T04:51:01.689Z" ,
"timestampMillis" : 1741150261689
},
]
}
}