コンテンツにスキップ

アプリ内情報 API

アプリ内情報取得APIは、ウェブストアにアクセスするユーザーのアプリサーバー、チャネル、およびキャラクター情報を取得するためのAPIです。このAPIは、Hiveサーバーから開発者のアプリサーバーにリクエストを送信し、開発者のサーバーがHiveサーバーにレスポンスを返します。

概要

Hive コミュニティとウェブストアを使用する際には、接続されたユーザーのアプリサーバー、チャネル、およびキャラクター情報が必要です。これにより、以下に示すようにウェブストアでの購入のためのUIを実装できます。


このAPIの使用を含む全プロセスは、以下のように要約できます。

  1. アプリ開発者: APIエンドポイントを設定することでサーバーURLを準備します
  2. アプリ開発者: Hive コンソールの Hive サーバーに送信される情報を ゲーム内情報として設定します
  3. Hive サーバー: アプリ開発者が登録されたサーバーURLにPOST APIリクエストを送信し、レスポンスとしてデータを受け取ります
  4. Hive サーバー: 受信したアプリサーバー、チャンネル、キャラクター情報をフロントエンドに送信します
  5. ウェブストアフロントエンド: ウェブストア購入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 ユーザーの一意の識別子


ここにリクエストボディの例があります。

{
  cs_code: "c_1234123"
}

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": "c_123412341234",
  "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": "c_123412341234",
  "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": "c_123412341234",
  "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": "c_123412341234",
  "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": "c_123412341234",
    "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 サーバーエラー