8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ApexLegendsの戦歴をPythonで取得してみよう

Last updated at Posted at 2021-11-16

はじめに

この記事ではPythonのライブラリであるApexTrackerPyを使用したPythonでのApexlegendsの戦歴の取得方法などを解説します。

目次

  • APIの登録
    • APIの種類について
    • 登録
  • 実際に戦歴を取得してみる
    • APIの呼び出し方
    • 値を取り出してみる
  • おまけ:現在のマップを取得してみる

APIの登録

APIの種類について

ApexTrackerPyではUNOFFICIAL APEX LEGENDS APITRACKER NETWORK APIの2種類に対応しています。
UNOFFICIAL APEX LEGENDS APIは戦歴以外にもサーバーステータスやマップローテーションなど多くの情報が取得できます。
戦歴(プレイヤーステータス)の取得はどちらでもいいのですが、この記事ではUNOFFICIAL APEX LEGENDS APIを使ってみます。

登録

このページにアクセスすると上の方にこのようなフォームがあると思います。
image.png
上からProject URL (not required) 使用するサイト等へのURL(必須ではない)、(Very) short usage description(簡単な使いみちの説明)とあるので入力し送信ボタンをクリックします。

最後にAPIキーが発行されるのでそれを安全な場所に保管して登録は完了です。

実際に戦歴を取得してみる

ライブラリのインストール

pip3 install ApexTrackerPy
pipで一発で入ります

APIの呼び出し方

import ApexTrackerPy
res = ApexTrackerPy.GetApexPlayerStatus(APIキー, 機種, ユーザー名)

返り値にはapexclassという独自のクラスとして値が返却されます。
機種は

  • PC
  • PSN
  • XBOX
  • SWITCH

に対応しています。

ユーザー名は各機種のID(OriginならID、PS4ならPSNID)
Steam版は紐付けたOriginユーザー名でOKです。
スイッチ版はAPIの制約でUID指定のみの対応です。
ApexLegendsStatusのClub等からUIDを見つけてきてユーザー名にUID、4つ目の引数をTrueにしてください。

値を取り出してみる

print("ユーザー名: "+res.name)
print("プレイヤーレベル: "+res.level)
print("バトロワランクの現在のランク: "+res.CurrentRank)
print("合計キル数: "+res.total_kill)
print("選択中のレジェンド: "+res.legends_json["selected"]["Legendname"])
print("レイスの一番上のトラッカーの値(自分はキル数): "+res.legends_json['all']['Wraith']['data'][0]['value'])

詳しい戻り値についてはGithub Wikiを参照してください。

legends_jsonからレジェンドの詳細情報を取り出すことができます。
全部の関数で共通なのがrow_jsonでAPIから取得したJSONを直で出力することができます。あとelapsed_timeでAPIの呼び出しにかかった時間を取得できます。

おまけ:現在のマップを取得してみる

現在のバトロワ(カジュアルの)マップを取得してみる例

import ApexTrackerPy
res = GetApexMapRotation(api_key)
print("現在のマップ: " + res.BattleRoyal_Current_Map)

標準ではマップ名の出力は英語ですが、取得する前に
ApexTracerPy.LANG = "ja-JP"
これを入れてあげると日本語化できます(v1.8からの新機能)

# 標準(en-US)
現在のマップ: Storm Point
# 日本語化後(ja-JP)
現在のマップ: ストームポイント

終わり

他にも取得できる情報が沢山あるのでWikiも覗いて見てください!
legends_jsonのところは各レジェンドごとに変数を用意してあげるとかRespawnAPIから直接取得していなぁなんて思ったりしています。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?