설치방법
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
www.npmjs.com/package/steamapi
참고할만한 것
partner.steamgames.com/doc/webapi/ISteamUserStats#GetPlayerAchievementspartner.steamgames.com/doc/webapi/ISteamUserStats
'웹 > Node.js' 카테고리의 다른 글
[Node.js] 간편하게 URL 인코딩 & 디코딩 하기 (0) | 2022.10.11 |
---|---|
[Node.js] 시놀로지 Docker + Node.js 서버 [Error: ENOENT: no such file or directory, open '***'] 오류 해결 (2) | 2022.08.21 |
[Node.js] winston custom level 추가하기 (0) | 2022.08.06 |
[Node.js] node-fetch와 cheerio 이용해서 웹 크롤링 하기 (0) | 2022.07.08 |