Steam APIが面白い!使い方を徹底解説!

2021年2月2日

みなさんはSteamのゲームで遊んだことはありますか!?

昔はよくわからん英語のゲーム売ってる場所ってイメージでしたが、モンハンワールドやTerraria、Rim Worldなどの名作を生み出してる超有名プラットフォームです!

今やPCでゲームと言ったら、まず最初にSteamが出てくるレベルです。

そんなSteamですが、なんと無料でAPIを提供しています!

APIを使うとSteamの色々な情報がプログラム経由で取得できるので、オリジナルのツールを作ることができます。

そのためAPIは有料の方が多いんですが、Steamさんはホントに気前がいいですね〜

早速使ってみましょう!

事前準備

Steam APIは無料で使う事ができますが、全てのAPI機能を使うには登録してキーを発行する必要があります。

5分もかからないのでちゃちゃっと済ませましょう。

ユーザー登録

こちらのURLから登録画面に飛べます。サインインすると下の表示が出ます。

ドメイン名は好きな文字列を入れましょう。利用規約をチェックして登録ボタンを押します。

するとキーとドメイン名が表示されます。これは誰にも教えないようにしましょう

Steam APIについて

そもそもAPIとは?

Wikipediaには下記のように記載されています。

アプリケーションプログラミングインタフェース(API、英: Application Programming Interface)とは、ソフトウェアコンポーネントが互いにやりとりするのに使用するインタフェースの仕様である。

引用元:Wkipedia

難しいですが、WEBプログラミングでAPIといえば、URL形式で特定の情報が取得できるようにしたものを指す事が多いです。

大量のデータを取得できるものから、本当は複雑な実装が必要になるようなデータまで、取得できる情報は様々です。

さらにURLから取得できるので、ほとんどのプログラミング言語でシンプルに使う事ができるのも特徴です。

Steam APIで取得できる情報

Stesm APIで取得できる情報は公式リファレンスに載っていますが、全て英語です。なのでこちらに情報を全てまとめました。

実は全てのメソッドでAPIキーを必要とするわけではありません。APIキーが無いものは登録しなくても使えます!

(各メソッドでサンプルURLも載せています。)

GetNewsForApp (v0002)

指定したAppIDのゲームについて、アップデートやイベントなどのニュース情報を返します。

必須 オプション 取得できる情報
○ appid ゲームのappid
  count 取得するニュースの数
  maxlength 各ニュースエントリの最大長
  format json,xml,vdfから選べる

GetGlobalAchievementPercentagesForApp 

あるゲームのグローバル実績の取得率を一覧で返します。

必須 オプション 取得できる情報
○ gameid ゲームのID
  format json,xml,vdfから選べる

GetGlobalStatsForGame 

指定したゲームのグローバル統計数を返します。

必須 オプション 取得できる情報
○ appid ゲームのappid
  count グローバル統計名の配列長
  name SteamWorksで定義されている実績名
  format json,xml,vdfから選べる

GetPlayerSummaries

ユーザーの基本的なプロフィール情報を返します。

必須 オプション 取得できる情報
○ key APIキー
○ steamids steamidのリスト(コンマ区切り)
  format json,xml,vdfから選べる

GetFriendList 

ユーザーのフレンドリストを返します。

必須 オプション 取得できる情報
○ key APIキー
○ steamid steamid
  relationship (all,friend)
  format json,xml,vdfから選べる

GetPlayerAchievements (v0002)

ユーザーの手に入れた実績一覧を返します。ゲーム名とユーザー名を指定します。

必須 オプション 取得できる情報
○ key APIキー
○ steamid Steam ID
○ appid ゲームのID
  l (任意) 返却データの言語を指定できる

GetUserStatsForGame (V0001)

あるゲームでそのユーザーが取得した実績を返します。ゲーム名とユーザー名を指定します。

必須 オプション 取得できる情報
○ key APIキー
○ steamid Steam ID
○ appid ゲームのID
  I(任意) 返却データの言語を指定できる

GetOwnedGames (v0001)

プロフィールが一般公開されている場合に、プレイヤーが所有するゲームのリストと、そのプレイ時間を取得できます。

必須 オプション 取得できる情報
○ key APIキー
○ steamid Steam ID
  include_appinfo 出力にゲーム名とロゴを含めるか(デフォルトではappidのみ)
  include_played_free_games 無料ゲームを除外しない(デフォルトでは除外されている)
  format json,xml,vdfから選べる
  appids_filter リストを一連のappidにフィルタする

GetRecentlyPlayedGames (v0001)

プロフィールが一般公開されている場合に、そのプレイヤーが過去2週間にプレイしたゲームのリストを取得できます。

必須 オプション 取得できる情報
○ key APIキー
○ steamid Steam ID
  count ゲーム数を制限できる
  format json,xml,vdfから選べる

IsPlayingSharedGame (v0001)

借りているアカウントが現在そのゲームをプレイしている場合、元の所有者のSteamIDを返します。ゲームが借りられていない場合、また借り手が存在しない場合は0を返します。

必須 オプション 取得できる情報
○ key APIキー
○ steamid Steam ID
  appid_playing ゲーム数を制限できる
  format json,xml,vdfから選べる(デフォルトではjson)

GetSchemaForGame (v2)

ゲーム名、ゲームバージョン、実績および統計を返します。

必須 オプション 取得できる情報
○ key APIキー
○ appid ゲームのAppID
  format json,xml,vdfから選べる(デフォルトではjson)
  I(任意) 返却データの言語を指定できる

GetPlayerBans (v1)

特定のプレイヤーのコミュニティ、VAC、エコノミー禁止ステータスを返します。

必須 オプション 取得できる情報
○ key APIキー
○ steamids Steam IDのリスト(コンマ区切り)

使ってみよう!

早速使っていきましょう。今回は超有名ゲームTerrariaの直近5個のニュースタイトルと著者を並べて表示させてみます。

サンプルコードは下記になりました。

実行結果は下記のようになりました。ニュースは日々アップデートされていくので、皆さんの画面では違うニュースについて表示されるかも^^;

ソースコードについて解説しておきます。このコードの中では下記のことを行なっています。

  • URLの設定(7~8行)
  • 情報を取得して表示(9~12行)

まずURLの設定です。ベースとなるURLを4行目で作っておき、オプションと組み合わせています。

あとは情報を取得して表示するだけです。今回はJSON形式で受け取っています。

もちろんニュースの名前と著者以外にも、様々な情報が返ってくるデータに入っているので、ぜひ自身の目で確かめてください!



まとめ

Steam APIについてみてみましたがいかがでしたでしょうか?

色々な情報が取得できるので、アイデア次第では何か面白いアプリとか作れそうですね。

APIはビッグデータを提供するので、国や個人の趣味で運営してるもの以外は有料なことが多いんですが、無料で使えちゃうなんてさすがSteamですね!日本の企業とは格が違いすぎます。

このAPIを使って色んな人が開発を始めて、もっとSteamを発展させてほしいという願いを感じます。

ぜひ何か思いついた方は、実際に作ってみては!?

以上!