Clash Royale はSupercell社が提供するスマホゲームで、「クラロワ」の愛称で親しまれています。
クラロワにはAPIが用意されており、キャラクター情報はプレイヤー情報を取得することができます。
今回は、クラロワAPIの使用方法と取得できるデータについてまとめていきます。
利用準備
アクセストークンの発行
クラロワAPIを利用するためには、トークンを発行する必要があります。
以下URLにアクセスし、アカウントを登録してください。
https://developer.clashroyale.com/#
アカウント登録しログインすると、My Accountからアクセストークンを発行することができます。「Create New Key」で新規トークンを発行してください。
トークン発行時に許可するIPアドレスを指定する必要があります。通信時のグローバルIPアドレスを指定するようにしてください。※ルータの管理画面等から、インターネット側のIPアドレスを確認ください。
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
指定地域でのランキングを取得できます。