Steam APIを使って特定のユーザーが持っているゲームの一覧を取得する方法

PC上でゲームができるプラットフォーム「Steam(スチーム)」のAPI(Steam API)を利用して、特定のユーザーが持っているゲームの一覧を取得することができます。

自分のWebサイトに一覧を表示して「僕の持ってるゲームはこれだけあるよ!」みたいな使い方もできますね。

もし方法をお探しの方がいらっしゃいましたら、以下をご参考ください。

前準備をしよう

API Keyを用意しよう

まず、Steam APIを利用するにはAPI Keyを取得する必要があります。API keyを持っていない場合は、以下のページに取得する方法が書いてありますので、ご参考ください。

Steam IDを調べよう

今回のようにユーザーのプライベートな情報を取得する場合は、Steam IDを指定する必要があります。調べ方は以下のページに書いてありますので、ご参考ください。

Steam APIを使って特定のユーザーが持っているゲームの一覧を取得する方法

例として、私の持っているゲームの一覧を取得します。keyにはAPI Keyを、steamidにはSteam IDを指定して、以下のURLにアクセスします。

http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=xxxxx&steamid=yyyyyyy&format=json

※他にも指定できるURLクエリパラメーターがありますので、詳細については「GetOwnedGames」をご参考ください。

うまくいくと、以下のようにゲームの一覧がjson形式で取得できます。

{
	"response": {
		"game_count": 6,
		"games": [
			{
				"appid": 45760,
				"name": "Ultra Street Fighter IV",
				"playtime_forever": 2627,
				"img_icon_url": "473fcea2eb516528608dff7f9e3e61009d76a282",
				"img_logo_url": "bdd481249e579f852056b51db32a6279444d4f47",
				"has_community_visible_stats": true
			},
			{
				"appid": 292120,
				"name": "FINAL FANTASY XIII",
				"playtime_forever": 30,
				"img_icon_url": "83c929d4965963f6e0bc17969a2599e7829ac23d",
				"img_logo_url": "e9650bfd8e5af872bb7972ec2da9b9bd95ef123b",
				"has_community_visible_stats": true
			},
			{
				"appid": 63380,
				"name": "Sniper Elite V2",
				"playtime_forever": 0,
				"img_icon_url": "0092da2541424d4c1d10c1757dcb8104c37323ac",
				"img_logo_url": "382d7f4a6eff4896ff4d137f0906735c99bd0300",
				"has_community_visible_stats": true
			},
			{
				"appid": 310950,
				"name": "Street Fighter V",
				"playtime_2weeks": 75,
				"playtime_forever": 15187,
				"img_icon_url": "ea0db9dc61e606b544fa30d21d31354998ca1f95",
				"img_logo_url": "dc8c23570a919e8f2ac14b87d21b169bf740b12d",
				"has_community_visible_stats": true
			},
			{
				"appid": 374320,
				"name": "DARK SOULS™ III",
				"playtime_forever": 0,
				"img_icon_url": "7abe1a33129c20cf10d2c74128bbd657a2a2c806",
				"img_logo_url": "54f76fd3abdd1446260f28ccc0cbc76034b32de9",
				"has_community_visible_stats": true
			},
			{
				"appid": 460790,
				"name": "Bayonetta",
				"playtime_forever": 0,
				"img_icon_url": "9c591c4d3d3d5e5164ba08465aaf4407d86301b9",
				"img_logo_url": "5d49ade3a66eec6432f5a00ed29da02860f515b8",
				"has_community_visible_stats": true
			}
		]
		
	}
}

主に取得できる値は以下です。

レスポンス内容
game_count持っているゲーム数
appidゲームID
nameゲームタイトル
playtime_2weeks過去2週間以内にゲームをプレイした時間(分)
playtime_foreverユーザーがこれまでゲームをプレイした時間(分)
img_icon_urlゲームのアイコンの画像URLのハッシュ値
img_logo_urlゲームのロゴの画像URLのハッシュ値
has_community_visible_stats自分のコミュニティページでステータスを表示しているかどうか

取得したデータを加工すると、こんな感じで表示することもできます。(プレイ時間がかなり偏ってるな・・・w)

さらに、ゲームIDから他のSteam APIと組み合わせれば、ゲームごとに新着情報なども取得できますね。詳しくは以下のページをご参考ください。

著者:bouya Imamura