본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 웹/Node.js
  3. [Node.js] 스팀 API 사용하기

[Node.js] 스팀 API 사용하기

· 댓글개 · KRFile

 

설치방법

npm i steamapi

 

cmd 창에서 다음 명령어를 입력해서 설치해주세요 

 

* Node.js 가 설치되어 있고 환경변수가 등록되어 있어야지 작동합니다.

 

사실 스팀 Web API가 이미 친절하게 제공되어 있으나 기능을 구현하려면 GET으로 일일히 만들어줘야 합니다

그걸 Node.js로 미리 해주신 분이 있어서 우린 써먹기만 하면 됩니다!

 

사용예제

Steam Api Key다음 링크에서 받으실 수 있습니다.

const API_KEY = 'your_api_key';
const SteamAPI = require('steamapi');
const steam = new SteamAPI(API_KEY);

steam.resolve('https://steamcommunity.com/id/your_steam_nickname').then(id => {
  console.log(id)
  steam.getGameSchema('250900').then(achievements => {
    console.log(JSON.stringify(achievements))
  });
  steam.getUserOwnedGames(id).then(games => {
    console.log(games)
  });
});

가지고 있는 스팀 사용자의 가지고 있는 게임과 아이작 도전과제를 표시해주는 예제입니다. 
(아이작의 App id 가 250900입니다)

 

resolve를 통해 사용자의 스팀 프로필에서 steam id 를 가져올 수 있고 api의 method 이용시 이를 요구하기 때문에

처음에 resolve를 통해 id를 가져오고 이를 저장해서 Promise등으로 사용하면 될거 같습니다.

API들 객체 자체가 Promise를 반환해 await/async도 사용이 가능합니다.

 

{
	"gameName": "The Binding of Isaac Rebirth",
	"gameVersion": "24",
	"availableGameStats": {
		"achievements": [{
			"name": "1",
			"defaultvalue": 0,
			"displayName": "Magdalene",
			"hidden": 0,
			"description": "Unlocked a new character.",
			"icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/ac5ebd9ba1934b1f6229bda09bcb8155f0af7ece.jpg",
			"icongray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/fc5c40f3429120652211c9e95570752ba5810f22.jpg"
		}, {
			"name": "2",
			"defaultvalue": 0,
			"displayName": "Cain",
			"hidden": 0,
			"description": "Unlocked a new character.",
			"icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/33658122e504ae8670bbb70686468e1276902cc4.jpg",
			"icongray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/fc5c40f3429120652211c9e95570752ba5810f22.jpg"
		}, {
			"name": "3",
			"defaultvalue": 0,
			"displayName": "Judas",
			"hidden": 0,
			"description": "Unlocked a new character.",
			"icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/8196f7a0a6ed79c2fbeffa58f17c9508eec99d12.jpg",
			"icongray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/fc5c40f3429120652211c9e95570752ba5810f22.jpg"
		}, {
			"name": "4",
			"defaultvalue": 0,
			"displayName": "The Womb",
			"hidden": 0,
			"description": "Chapter 4 - The Womb unlocked.",
			"icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/be9b9b5460cecea8cd08966011993a94f6009f28.jpg",
			"icongray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/250900/fc5c40f3429120652211c9e95570752ba5810f22.jpg"
		}
        (...)
 }

위 예제를 응용해서 Node.js 서버로 아이작 도전과제 이미지를 불러온 모습입니다

 

출처

더 다양한 사용 예제는 아래 링크를 참고하시길 바랍니다.

github.com/xDimGG/node-steamapi#readme

 

xDimGG/node-steamapi

A nice Steam API wrapper for nodejs. Contribute to xDimGG/node-steamapi development by creating an account on GitHub.

github.com

www.npmjs.com/package/steamapi

 

steamapi

A nice Steam API wrapper.

www.npmjs.com

 

참고할만한 것

partner.steamgames.com/doc/webapi/ISteamUserStats#GetPlayerAchievementspartner.steamgames.com/doc/webapi/ISteamUserStats

 

ISteamUserStats Interface (Steamworks Documentation)

Documentation Resources News & Updates Support

partner.steamgames.com

 

 

SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.