アプリ内情報 API
アプリ内情報取得APIは、ウェブストアにアクセスするユーザーのアプリサーバー、チャネル、およびキャラクター情報を取得するためのAPIです。このAPIは、Hiveサーバーから開発者のアプリサーバーにリクエストを送信し、開発者のサーバーがHiveサーバーに応答を返します。
概要¶
Hiveコミュニティとウェブストアを使用する際には、接続されたユーザーのアプリサーバー、チャネル、およびキャラクター情報が必要です。これにより、以下に示すようにウェブストアでの購入用のUIを実装できます。
このAPIの使用を含む全プロセスは、次のように要約できます。
- アプリ開発者: APIエンドポイントを設定することでサーバーURLを準備します
- アプリ開発者: Hive コンソールの Hive サーバーに送信する情報を設定します ゲーム内情報
- Hive サーバー: アプリ開発者が登録されたサーバーURLにPOST APIリクエストを送信し、データをレスポンスとして受け取ります
- Hive サーバー: 受信したアプリサーバー、チャンネル、およびキャラクター情報をフロントエンドに送信します
- ウェブストアフロントエンド: ウェブストア購入UIにドロップダウンメニューを表示します
APIエンドポイントの設定 (サーバーURL)¶
Hive Console Community & Web Shop > Web Shop > Web Shop Settings > In-Game InformationにAPIエンドポイントを登録します。
APIエンドポイントは、リクエストを受信したときにリクエストパラメータ内にユーザー情報(cs_code)を受け取る必要があり、レスポンスにはアプリサーバー、チャネル、およびキャラクター情報を返す必要があります。APIエンドポイントは、以下の例に示すように構成されており、Hive コンソール(本番、サンドボックス、テスト)に対応しています。
| コンソール環境 | APIエンドポイント | 
|---|---|
| 本番 | https://{URL}/webstore-profile | 
| サンドボックス | https://{URL}/webstore-profile | 
| テスト | https://{URL}/webstore-profile | 
APIリクエスト (Hive サーバー → アプリサーバー) 設定¶
これはHiveサーバーからアプリサーバーに送信されたPOSTリクエスト情報です。レスポンスとして、アプリサーバーのリスト、サーバーに含まれるチャネル、およびキャラクターリストを受け取ります。
| API情報 | 説明 | 
|---|---|
| メソッド | POST | 
| レスポンス形式 | JSON | 
| コンテンツタイプ | application/json | 
以下はリクエストボディ情報です。
| 名前 | タイプ | 必須 (必須: O, オプション: X) | 説明 | 
|---|---|---|---|
| cs_code | 整数 | O | ユーザーの一意の識別子 | 
ここにリクエストボディの例があります。
APIレスポンス (アプリサーバー → Hive サーバー) 設定¶
これは、応答が成功したときにアプリサーバーからHiveサーバーに配信されなければならない応答値情報です。各製品のキャラクターレベルに基づく購入制限機能については、Hiveコンソールのアプリ内情報でキャラクターが選択されていなくても、キャラクターレベル情報を配信する必要があります。キャラクターが選択されておらず、配列(data.channels.characters)に複数のキャラクターがある場合、配列の最初の要素に対応するキャラクターのレベルが使用されます。
| 名前 | タイプ | 必須 (必須: O, 任意: X) | 説明 | 
|---|---|---|---|
| result_code | 整数 | O | 結果コード | 
| result_message | 文字列 | O | 結果メッセージ | 
| cs_code | 整数 | O | ユーザーのユニーク識別子 | 
| data | 配列 | O | サーバーリスト(ユーザー情報がない場合、応答値: "[ ]") | 
| data.server_id | 文字列 | O | サーバーのユニーク識別子 | 
| data.server_name | 文字列 | O | サーバーの名前 | 
| data.channels | 配列 | O | サーバーに含まれるチャンネルのリスト | 
| data.channels.channel_id | 文字列 | O | チャンネルのユニーク識別子(チャンネルが使用されていない場合、応答値: "0") | 
| data.channels.channel_name | 文字列 | O | チャンネルの名前(チャンネルが使用されていない場合、応答値: "-") | 
| data.channels.characters | 配列 | O | チャンネルに含まれるキャラクターのリスト | 
| data.channels.characters.character_id | 文字列 | O | キャラクターのユニーク識別子(キャラクターが使用されていない場合、応答値: "-") | 
| data.channels.characters.character_name | 文字列 | O | キャラクターの名前(キャラクターが使用されていない場合、応答値: "-") | 
| data.channels.characters.character_level | 文字列 | O | キャラクターのレベル(キャラクターレベルが利用できない場合、応答値: "0") | 
以下は、レスポンスが成功したときのレスポンス値の例です。
// When you activated the server, the channel, and the character in the console
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "1",
      "server_name": "Server 1",
      "channels": [{
        "channel_id": "1",
        "channel_name": "Channel 1",
        "characters": [{
            "character_id": "A",
            "character_name": "Character A",
            "character_level": "99"
          },
          {
            "character_id": "B",
            "character_name": "Character B",
            "character_level": "10"
          }
        ]
      }]
    }
  ]
}
// When you activated the server and the character in the console
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "2",
      "server_name": "Server 2",
      "channels": [{
        "channel_id": "0",
        "channel_name": "-",
        "characters": [{
            "character_id": "C",
            "character_name": "Character C",
            "character_level": "11"
          },
          {
            "character_id": "D",
            "character_name": "Character E",
            "character_level": "12"
          }
        ]
      }]
    }
  ]
}
 // When you activated the server and the channel in the console
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "3",
      "server_name": "Server 3",
      "channels": [{
        "channel_id": "2",
        "channel_name": "Channel 2",
        "characters": [{
          "character_id": "-",
          "character_name": "-",
          "character_level": "99"
        }]
      }]
    }
  ]
}
// When you activated the server in the console
{
  "result_code": 200,
  "result_message": "success",
  "cs_code": 100001234,
  "data": [
    {
      "server_id": "4",
      "server_name": "Server 4",
      "channels": [{
        "channel_id": "0",
        "channel_name": "-",
        "characters": [{
          "character_id": "-",
          "character_name": "-",
          "character_level": "99"
        }]
      }]
    }
  ]
}
// When you activated the server, the channel, and the character in the console: multiple channels
{
    "result_code": 200,
    "result_message": "success",
    "cs_code": 100001234,
    "data": [
        {
            "server_id": "1",
            "server_name": "Server 1",
            "channels": [
                {
                    "channel_id": "1",
                    "channel_name": "Channel 1",
                    "characters": [
                        {
                            "character_id": "A",
                            "character_name": "Character A",
                            "character_level": "99"
                        }, {
                            "character_id": "B",
                            "character_name": "Character B",
                            "character_level": "10"
                        }
                    ]
                }, {
                    "channel_id": "2",
                    "channel_name": "Channel 2",
                    "characters": [
                        {
                            "character_id": "A2",
                            "character_name": "Character A2",
                            "character_level": "99"
                        }, {
                            "character_id": "B2",
                            "character_name": "Character B2",
                            "character_level": "10"
                        }
                    ]
                }
            ]
        }
    ]
}
以下はレスポンスコード(result_code)です。
| コード | 説明 | 
|---|---|
| 200 | 成功 | 
| 204 | ユーザーに関する情報なし | 
| 500 | サーバーエラー | 

