【Python】ApexLegendsのAPIがあったので叩いてみた
みなさん、こんにちは!
5月に入社した、エンジニアのおちのです。
今回はじめてブログを書くということで、テーマに悩みに悩み・・・
「何かAPI叩いてみたいな~」
「Apex Legends(入社前の有給消化中にはじめました)のAPIとかあるのかな、ないよな~」
ぐぐる
あ っ た ! !
というわけで、早速APIを叩いてみました。
環境
Windows 10
Python 3.9.5
TrackerNetwork登録
APIを利用するために、TRACKER NETWORKにてユーザー登録を行います。
ユーザー名、メールアドレス、パスワードを入力し、「Next Step」をクリック
アプリの作成
次に、アプリケーションの作成を行います。
Developers > Dashboard
「Create application」をクリック
アプリ名、説明、目的を入力し、「Create app」をクリック
APIキー取得
作成したアプリ > Go to app details
後ほど使うので、APIキーをメモしておきます。
実装
実装に入ります。
今回は、フロントの実装もPythonでしちゃおう!ということで、
Streamlitというフレームワークを使います。
ディレクトリ構成
APEX_APP
├ .env
├ apex_app.py
└ settings.py
Streamlitインストール
まずは、Streamlitをインストールします。
pip install streamlit
Streamlitをインストール
streamlit run ファイル名.py
実行方法
環境変数の設定
APIキーは直書きしたくないので、環境変数に保持します。
pip install python-dotenv
Python-dotenvモジュールをインストール
API_KEY = "XXXXXXXX-123456789-YYYYYYYYYY"
.envファイルにて環境変数を設定
APIキー取得でメモしたキーを定義
import os
from os.path import join, dirname
from dotenv import load_dotenv
dotenv_path = join(dirname(__file__), '.env')
load_dotenv(dotenv_path)
TRN_API_KEY = os.environ.get("API_KEY")
settings.pyファイルにて環境変数を読み込む
APIを呼び出す
APIを呼び出す処理を書いていきます。
公式リファレンスはコチラ
URL
https://public-api.tracker.gg/v2/apex/standard/profile/{platform}/{userid}
プラットフォーム
PC : origin
xbox : xbl
PS4 : psn
今回は、一緒に遊んでくれる友人Sのデータを取得してみたいと思います。
(友人Sありがとう!)
import streamlit as st
import requests
import settings
base_url = "https://public-api.tracker.gg/v2/apex/standard/profile"
platform = "/psn"
userid = "/sample-user"
api_key = settings.TRN_API_KEY
header = {"TRN-Api-Key":api_key}
# URL設定
url = base_url + platform + userid
# API呼び出し
res = requests.get(url, headers=header).json()
# タイトル
st.title('ApexLegends')
# 結果表示
st.write(res)
実行
いざ、実行!
streamlit run apex_app.py
EメールアドレスはblankのままEnterでOKです
http://localhost:8501/へアクセス
取得できました~!
streamlitではグラフ描画もできるので、
一定期間毎に変化をみてみるのも楽しそうです。
最後に
今回は、環境変数定義で使った「Python-dotenv」モジュールや、
データ取得時に使った、HTTP通信用の「requests」ライブラリにも触れられたので、
その辺りも勉強になりました。
以上となります。
最後まで読んでいただき、ありがとうございました!