■はじめに
この記事では、みなさんが作成したゲームで設定しているStat(集計のチェックを入れたもの)をPythonで加算集計してみます。
マーケティング等でStatの値を見たい場合に有効かと思います。
■ドキュメント
■コード
API_KEY = 'ここ' # <=(*1)ここに皆さん個人のSteamのWebAPIキーを入れる
APP_ID = 'ここ' # <=ここに皆さんの作成したSteamゲームのAppIDを入れる
STAT_NAMES = ['ここ1', 'ここ2'] # <=ここに取得したいstatのキーを1個以上入れる。
def get_global_stats(app_id, stat_names, api_key):
try:
# 複数のstatをリクエストするためにname[0], name[1], ... を作成
names_param = '&'.join([f'name[{i}]={stat}' for i, stat in enumerate(stat_names)])
url = f"https://api.steampowered.com/ISteamUserStats/GetGlobalStatsForGame/v1/?appid={app_id}&count={len(stat_names)}&{names_param}&key={api_key}"
# リクエストのURLを表示して、正しく作成されているか確認
print(f"APIリクエストURL: {url}")
response = requests.get(url)
# ステータスコードとレスポンスを出力
print(f"ステータスコード: {response.status_code}")
print(f"レスポンス: {response.text}") # JSON形式でない場合のために.textを使う
if response.status_code == 200:
data = response.json() # JSON形式のデータを解析
# 結果を返す(globalstats から値を取得)
if 'response' in data and 'globalstats' in data['response']:
return data['response']['globalstats']
else:
print("統計データが見つかりませんか、フォーマットが異なります")
else:
print(f"APIリクエストが失敗しました: {response.status_code}")
except Exception as e:
print(f"例外が発生しました: {e}")
return None
def main():
stats = get_global_stats(APP_ID, STAT_NAMES, API_KEY)
if stats:
# 複数のstatをループで表示
for stat_name in STAT_NAMES:
if stat_name in stats:
# データが空でないか確認
if 'total' in stats[stat_name]:
print(f"現在の {stat_name}: {stats[stat_name]['total']}")
else:
print(f"{stat_name} のデータが存在しません(空のレスポンス)")
else:
print(f"{stat_name} のデータが見つかりません")
if __name__ == "__main__":
main()
(*1)個人のSteamWEBAPIキーです。
まだWebAPIキーを取得していない場合は以下から取得できます。
http://steamcommunity.com/dev/apikey
■実行
上記をテキストファイル等に書き、そのファイルの拡張子を.pyにした後、コマンドプロンプト等から実行すれば確認できます。
■その他できることがまとめられている記事
■以上
コーヒーに合う電子タバコがあればいいのに、と思いながらなんとなく買ったセッターのメンソールは冬に呑むと寒い。