コンテンツにスキップ

個人マッチAPI

これはゲームプレイ中に個別マッチングを適用する際に使用されるAPIです。グループマッチングプレイを適用するには、グループAPIを使用してください。

リクエストの一致

これはマッチリクエストを開始するときに呼び出されます。matchIdに対応するマッチは、Hiveコンソールで事前に作成されている必要があります。

リクエストURL

ライブURL https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
サンドボックスURL https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
HTTPメソッド POST
コンテンツタイプ application/json

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
認証 API呼び出しのための認証トークン(ベアラ) 文字列 はい

パスパラメータ

フィールド名 説明 タイプ 必須
gameIndex Hiveコンソールアプリセンターにあるプロジェクト識別子 int はい
matchId Hiveコンソールで作成された各マッチの識別子 int はい

リクエストボディ

フィールド名 説明 タイプ 必須
playerId アカウント識別子 long Y
point マッチングに使用されるスコアです。入力範囲は0 ~ 999,999,999です。入力しない場合は0として処理されます。 integer N
extraData 追加のアカウント情報(ニックネーム、レベル、国など)。最大256文字まで入力できます。マッチング結果に含まれます。 string N

応答

フィールド名 説明
playerId アカウント識別子
matchInfo 要求された情報
  • gameIndex: gameIndexの値
  • matchId: matchIdの値
requestingStatus リクエスト状態情報
  • requested: マッチリクエストが正常に行われました
  • notRequested: マッチリクエストは行われていないか、マッチはすでに完了しており、進行中のマッチはありません
requestingInfo リクエスト情報
  • requestTimeUtc: UTC+0に基づくリクエスト時間
  • point: リクエスト時に入力されたpoint
  • extraData: リクエスト時に入力されたextraData
matchingInfo マッチング進行情報 (status)
  • matchingInProgress: マッチングが進行中です
  • timeout: 指定された時間内にマッチングが行われませんでした
  • matched: マッチングが完了しました

リクエストサンプル

curl --location 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/request' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a' \
--data '{
   "playerId":100,
   "point": 1000
}'

応答サンプル

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "requested",
   "requestingInfo": {
       "requestTimeUtc": "2024-06-05T05:09:28.72",
       "point": 1000
   },
   "matchingInfo": {
       "status": "matchingInProgress"
   }
}

マッチステータスを確認

リクエストされたマッチングステータスを確認しています。

リクエスト URL

ライブURL https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
サンドボックスURL https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players
HTTPメソッド GET

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
認証 API呼び出しのための認証トークン(ベアラー) 文字列 はい

パスパラメータ

フィールド名 説明 タイプ 必須
gameIndex Hiveコンソールアプリセンターで確認できるプロジェクト識別子 int はい
matchId Hiveコンソールで作成された各マッチの識別子 int はい

クエリパラメータ

フィールド名 説明 タイプ 必須
id ユーザーID (`playerId`) long Y

返信

フィールド名 説明
playerId アカウント識別子
matchInfo 要求された情報
  • gameIndex: gameIndexの値
  • matchId: matchIdの値
requestingStatus リクエストステータス情報
  • requested: マッチリクエストが正常に行われました
  • notRequested : マッチリクエストが行われていないか、マッチがすでに完了しており、進行中のマッチがありません
requestingInfo リクエスト情報
  • requestTimeUtc: UTC+0に基づくリクエスト時間
  • point: リクエスト中に入力されたpoint
  • extraData: リクエスト中に入力されたextraData
matchingInfo マッチング進行状況情報 (status)
  • matchingInProgress: マッチングが進行中です
  • timeout: 制限時間内にマッチングが達成されませんでした
  • matched: マッチングが完了しました

リクエストサンプル

curl --location --request GET 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players?id=100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'

応答サンプル

開発者がまだ一致するリクエストを作成していない場合、一致ステータスの結果は次のとおりです。

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "notRequested"
}


マッチングリクエストが行われると매칭 요청し、マッチングがまだ進行中の場合、結果はrequestedmatchingInProgressが返されます。

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "requested",
   "requestingInfo": {
       "requestTimeUtc": "2024-06-05T05:09:28.72",
       "point": 1000
   },
   "matchingInfo": {
       "status": "matchingInProgress"
   }
}


マッチングが完了した後にリクエストのステータスを確認すると、matchedまたはtimeoutの結果が返されます。これは、マッチングが完了した後、マッチ結果コールバックを受け取る前の状態です。

    {
       "playerId": 100,
       "matchInfo": {
           "gameIndex": 1,
           "matchId": 1
       },
       "requestingStatus": "requested",
       "requestingInfo": {
           "requestTimeUtc": "2024-06-05T05:09:28.72",
           "point": 1000
       },
       "matchingInfo": {
           "status": "matched"
       }
   }


マッチングが完了すると、Hiveサーバーはマッチング結果をコールバックとして送信します開発者のサーバーに。開発者のサーバーがマッチング結果のコールバックを受信し、HiveサーバーにHTTPステータス200を返すと、マッチングリクエストのステータスが再度チェックされると、以下のようにnotRequestedに変更され、matchingInfoキーが削除されます。これは、HiveサーバーがコールバックレスポンスとしてHTTPステータス200を受信すると、開発者によって要求されたマッチングが完了したと判断し、対応するマッチングリクエストトランザクションを削除するためです。

{
   "playerId": 100,
   "matchInfo": {
       "gameIndex": 1,
       "matchId": 1
   },
   "requestingStatus": "notRequested"
}


マッチングリクエスト前 マッチングリクエスト後 マッチング結果生成後 コールバック受信後
requestingStatus notRequested requested requested notRequested
matchingInfo > Status N/A matchingInProgress matched or timeout N/A
備考 マッチング進行中の時点 コールバック受信前の時点

マッチリクエストをキャンセル

マッチングリクエストをキャンセルしています。マッチングリクエストをキャンセルすると、Hiveサーバーのマッチングリクエストトランザクションが削除されます。

リクエストマッチをリクエストした後にマッチングリクエストが完了し、マッチ結果コールバックに対してHTTPステータス200が送信されると、Hiveサーバーは内部的にマッチングが完了したと見なし、対応するマッチングリクエストトランザクションを削除します。この状態では、マッチングリクエストのキャンセルが呼び出されても、マッチングリクエストトランザクションはすでに削除されているため、キャンセルリクエストは実行されず、別途例外は返されません。

リクエストURL

ライブURL https://api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}
サンドボックスURL https://sandbox-api-match.withhive.com/gameindexes/{gameIndex}/matchmakings/{matchId}/players/{playerId}
HTTPメソッド DELETE

ヘッダーパラメータ

フィールド名 説明 タイプ 必須
Authorization API呼び出しのための認証トークン(Bearer) 文字列 Y

パスパラメータ

フィールド名 説明 タイプ 必須
gameIndex Hiveコンソールアプリセンターで確認できるプロジェクト識別子 int はい
matchId Hiveコンソールで作成された各マッチの識別子 int はい
playerId ユーザーID long はい

応答

200 OKの場合、ボディデータは空です。

リクエストサンプル

curl --location --request DELETE 'https://sandbox-api-match.withhive.com/gameindexes/1/matchmakings/1/players/100' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ya3a'

応答サンプル

成功した処理に対して特別な応答内容はありません。