ApexLegends

【Python】ApexLegendsのAPIがあったので叩いてみた

#Python
written by おちの

みなさん、こんにちは!

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」ライブラリにも触れられたので、
その辺りも勉強になりました。

以上となります。
最後まで読んでいただき、ありがとうございました!