クラロワAPIが面白い!使い方を徹底解説!
今や世界でも1位2位を争うようになった大人気スマホゲーム、Clash・Royal(クラッシュ・ロワイヤル)
通称クラロワと呼ばれるこのゲーム。最近は様々な国でプロチームが結成されたりクラロワYoutuberも増えてきて爆発的に人口も増えています(多分)
そんなクラロワですが、2018年8月にAPIの提供を開始しました!
ということで早速使っていきましょう!
【お知らせ】
クラロワからAPIの提供を開始しました!
正規データにアクセスして素敵な体験を生み出してください。
▼詳しくはこちら(英語)https://t.co/ExwBt49uEk pic.twitter.com/s8sKWoJD6m— クラッシュ・ロワイヤル公式(クラロワ) (@ClashRoyaleJP) 2018年8月16日
事前準備
クラロワAPIは無料で使う事ができますが、登録してキーを発行しなければ使えません。5分もかからないのでちゃちゃっと済ませましょう。
ユーザー登録
まずは登録をしなければ使えません。
こちらのURLへ飛ぶと下の画面に飛びます。Getting Startedを押しましょう!
メールアドレスの登録まで終わるとメールが送られてきます。ボタンを押して本登録へ進みましょう。
APIキーの発行
登録したらログインしましょう。下記のMy Accountを押します。
Create New Keyを押します。
KEY NAME(キー名)と DESCRIPTION(概要)には適当な名前と説明を入れましょう。ALLOWED IP ADDRESSには自分のPCのIPアドレスを入れます。こちらで確認する事ができます。
クラロワAPIについて
そもそもAPIとは?
Wikipediaには下記のように記載されています。
アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。
引用元:Wkipedia
難しいですが、WEBプログラミングでAPIといえば、URL形式で特定の情報が取得できるようにしたものを指す事が多いです。
大量のデータを取得できるものから、本当は複雑な実装が必要になるようなデータまで、取得できる情報は様々です。
さらにURLから取得できるので、ほとんどのプログラミング言語でシンプルに使う事ができるのも特徴です。
クラロワAPIで取得できる情報
公式リファレンスにまとめられていますが、現時点での情報を簡単にまとめておきます。
/clans
特定のクランに関する情報が取得できます。取得にはクランタグが必要です。
メソッド | URL | 取得できる情報 |
---|---|---|
GET | /clans/{clanTag} | クランの情報 |
GET | /clans/{clanTag}/members | クランメンバーのリスト |
GET | /clans/{clanTag}/warlog | クラン対戦のログ |
GET | /clans/{clanTag}/currentwar | 現在のクラン対戦の情報 |
/players
特定のユーザーに関する情報が取得できます。取得にはプレイヤータグが必要です。
メソッド | URL | 取得できる情報 |
---|---|---|
GET | /players/{playerTag}/upcomingchests | 次に手に入れる宝箱 |
GET | /players/{playerTag}/battlelog | 直近のバトルログ |
/tournaments
大会に関する情報が取得できます。取得には大会タグが必要です。
メソッド | URL | 取得できる情報 |
---|---|---|
GET | /tournaments/{tournamentTag} | 大会の情報 |
/cards
カードに関する情報が取得できます。
メソッド | path | 説明 |
---|---|---|
GET | /cards | 使用可能なカードのリスト |
/locations
特定の地域を指定して、その地域に関する情報を取得できます。
メソッド | URL | 説明 |
---|---|---|
GET | /locations/{locationId} | 地域の情報 |
GET | /locations/{locationId}/rankings/clans | 地域のクランランキング情報 |
GET | /locations/{locationId}/rankings/players | 地域のプレイヤーランキング情報 |
GET | /locations/{locationId}/rankings/clanwars | 地域のクラン対戦ランキング情報 |
使ってみよう!
早速使っていきましょう。今回はプレイヤー名とタワーレベル、最高トロフィーを表示してみます。
サンプルコードは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# coding: utf-8 import settings import requests BASE_URL = "https://api.clashroyale.com/v1" def main(): access_key = settings.ACCESS_KEY player_tag = 'プレイヤーIDを入力' url = BASE_URL + "/players/" + player_tag headers = { 'content-type': 'application/json; charset=utf-8', 'cache-control': 'max-age=60', 'authorization': 'Bearer %s' % access_key} r = requests.get(url, headers=headers) my_data = r.json() print('プレイヤー名: ' + my_data['name']) print('タワーレベル: ' + str(my_data['expLevel'])) print('最高トロフィー: ' + str(my_data['bestTrophies'])) if __name__ == '__main__': main() |
実行結果は下記のようになりました。表示結果は自分のものになるはずです!
1 2 3 |
プレイヤー名: clash タワーレベル: 12 最高トロフィー: 5389 |
一つずつ見ていきます。このコードの中では、下記の3つを行なっています。
- urlの設定(7〜12行)
- header(ヘッダ)の設定(13〜17行)
- 情報を取得して表示(18〜21行)
まずはURLの設定ですが、これは良いですね。ベースのURLに、取得したい情報に合わせてパスを設定します。
次にheader(ヘッダ)の設定です。ここでsettings.pyに準備したアクセスキーを使用します。ヘッダを設定しないとクラロワAPIは利用できません。
最後に取得した情報の表示情報を受け取って表示です。x行で情報をJSON形式で取得し、print文で表示しています。
まとめ
実際にクラロワAPIを使ってみましたがいかがでしょうか?
色々な情報が取得できるので、アイデア次第では何か面白いアプリとか作れそうですね。
APIはビッグデータを提供するので、国や個人の趣味で運営してるの以外は有料なことが多いんですが、無料で使えちゃうなんてさすがスパセルですね!日本の企業とは強さが違いすぎます。
このAPIを使って色んな人が開発を始めて、もっともっとクラロワを発展させてほしいというスパセルの願いを感じます。
ぜひ何か思いついた方は、実際に作ってみては!?
以上!