この記事はRiot APIのAdvent Calendarの6日目の投稿です。
Riot APIで取得できるJSONデータをみるとなんかワクワクして、LOLKingなどMobafireみたいなかっこいいサイト作りたくなりますよね?
でももちろん、ウェブサイトを作った場合に、最新のアイコンなどの画像も必要になりますので、今回はPythonをつかって自分のプロフィールアイコンのurlを取得するところまでデモしたいと思います。
Riot Gamesのアセット・リポジトリはData Dragonというサービスに通じてアクセスできます。
Riot APIと別のチームが管理しているらしいので、アップデート直後にData Dragonへの反映が遅れたり、
データーが一致しない可能性もありますが、それでも最新の画像の取得には一番便利なツールになります。
ではプロフィールアイコンの取得をやりましょう
1) バージョン取得
画像データーはバッチでアップロードされていて、一番最初にダウンロードしたい画像のバージョンを取得する必要があります。 自分のアカウントはNorth Americaサーバーにありますので、naのjsonフィードを使います。
# datadragon.py import requests # pip install requests DD_URL = 'http://ddragon.leagueoflegends.com' version_path = '/realms/na.json' res = requests.get(DD_URL + version_path) res.raise_for_status() # catch non 2xx status print(res.text)
プリントの結果はこんな感じです:
{"n":{"item":"4.20.1","rune":"4.17.1","mastery":"4.17.1","summoner":"4.20.1","champion":"4.20.1", "profileicon":"4.20.1","language":"4.20.1"},"v":"4.20.1","l":"en_US","cdn":"http:\/\/ddragon.leagueoflegends. com\/cdn","dd":"4.17.1","lg":"0.152.55","css":"0.152.55","profileiconmax":28,"store":null}
今回はプロフィールアイコンのバージョンが取得したいと思いますので、こういうふうにprofileiconのバージョン番号だけ取得しましょう:
version = res.json()['n']['profileicon']
2) 自分のプロフィールアイコンIDを取得
次に自分のプロフィールアイコンIDを取得します。今回はデータードラゴンじゃなくて、通常のRiotAPIを使いましょう。
API_URL = 'https://na.api.pvp.net/api/lol/na' summoner_by_name_path = "/summoner/by-name/laouji"; profile_url = API_URL + "/v1.4" + summoner_by_name_path + "?api_key=" + API_KEY res = requests.get(profile_url) res.raise_for_status()
res.textの中身を確認すると:
"laouji":{"id":46048341,"name":"laouji","profileIconId":607,"summonerLevel":23,"revisionDate":1411808085000}}
3)画像のURLを組み合わせる
APIコールの結果に必要なprofileIconIdありましたので、画像のurlを組み合わせるのが簡単です:
def icon_url ( version, icon_id ): url = DD_URL + '/cdn/' + version + '/img/profileicon/' + str(icon_id) + '.png' return url icon_id = res.json()['laouji']['profileIconId'] icon_url = icon_url(version, icon_id)
自分の場合はこれでした:
No comments:
Post a Comment