【API】Clash Royale APIを使ってゲームのデータを取得する。

Clash Royale はSupercell社が提供するスマホゲームで、「クラロワ」の愛称で親しまれています。

Clash Royal

クラロワにはAPIが用意されており、キャラクター情報はプレイヤー情報を取得することができます。

今回は、クラロワAPIの使用方法と取得できるデータについてまとめていきます。

利用準備

アクセストークンの発行

クラロワAPIを利用するためには、トークンを発行する必要があります。

以下URLにアクセスし、アカウントを登録してください。

https://developer.clashroyale.com/#

アカウント登録しログインすると、My Accountからアクセストークンを発行することができます。「Create New Key」で新規トークンを発行してください。

トークン発行時に許可するIPアドレスを指定する必要があります。通信時のグローバルIPアドレスを指定するようにしてください。※ルータの管理画面等から、インターネット側のIPアドレスを確認ください。

Create a key

APIキーは一度作成すると変更できません。内容を変更する場合は、新規トークンを発行する必要があります。

APIコールの手順

上記APIを呼び出す手順を紹介します。

Pythonでは以下のコードで取得することができます。

URLでIDをパラメータにする際、#は%23に変換してURLにセットする必要があります。

import requests

BASE_URL = "https://api.clashroyale.com/v1/players/%23xxxxxxx"
token = "生成したアクセストークン"

headers = {"Authorization": "Bearer {}".format(token)}
auth_response = requests.get(BASE_URL, headers=headers)

print(auth_response.json())

使用できるAPI

使用できるAPIは以下URLから確認することができます(上記アカウント登録済であること)。

https://developer.clashroyale.com/#/documentation

以下代表的なAPIを紹介しますが、全てのAPIは上記URLからご確認ください。

clans

クランに関連するデータを取得できます。

/clans

クラン情報を名称やロケーションID(地域/国)から検索することができます。

/clans/{clanTag}

clanTagがわかる場合は、特定のクランを検索することができます。clanTagは#から始まる7桁英数字のIDです。ゲーム内でも確認することができます。

ほか、クラン対戦やリバーレースに関する対戦履歴等を取得することができます。

players

プレイヤーに関するデータを取得できます。プレイヤーIDが検索に必須となります。

/players/{playerTag}

対象のプレイヤーのランク、勝利数やカードのレベル等の情報を取得することができます。

/players/{playerTag}/upcomingchests

次以降に獲得できるチェストの種類を取得することができます。

/players/{playerTag}/battlelog

対戦履歴情報を取得することができます。

cards

/cards

カードの一覧を取得することができます。

tournaments

/tournaments

トーナメント情報を取得することができます。

locations

地域ごとのランキングを、過去分も含めて取得することができます。

/locations

地域/国の一覧を取得できます。

/locations/{locationId}/rankings/players

指定地域でのランキングを取得できます。