지원 / Support
home
디스코드 / Discord
home
▶️

게임 실행 연동 (07.22 업데이트)

웹 (공식 홈페이지 등)에서 STOVE 런처 (클라이언트)실행을 연동하기 위한 가이드 입니다. ※ 스토브의 모든 게임은 STOVE 런처를 통해 실행됩니다.
웹에서 런처실행을 위해 을 통해 패키징 연결하기 방식 (launcher-pack.js)으로 연동 가이드를 제공 합니다.
런처 실행 전 약관(서비스이용약관) 연동이 필요 할 경우 아래 링크로 이동하여 연동 하시기 바랍니다.

01. CDN 라이브러리

환경 별 cdn 도메인 정보
환경
Domain
Sandbox
Live
CDN 라이브러리 Path 정보
빠른 연동을 위해서는 패키징 방식을 권장 합니다.
구분
lib Path
패키징 방식
- 패키징(런처/점검/화이트유저) lib : /libs/stove-js service/latest/launcher-pack.js
개별 방식
- 런처 lib : /libs/stove-js-service/latest/launcher.js - 점검 lib : /libs/stove-js-service/latest/maintenance.js - 화이트리스트 lib : /libs/stove-js-service/latest/white-user.js

02. 라이브러리 연결하기

script 태그 위치
head 태그 또는 body 태그 가장 하단에 정의 합니다.
defer 옵션 script 태그 옵션은 defer로 설정해서 모든 컨텐츠가 다운로드 완료된 후 script가 실행되도록 합니다.

02.A. head 태그 정의

예시코드
<html> <head> <meta charset="UTF-8"> <title>stove launcher</title> <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher.js" defer /> <script> function runLauncher() { // 런처 실행 코드 } </script> </head> <body onload="initLauncher"> <button onclick="runLauncher">게임 실행</button> </body> </html>
HTML
복사

02.B. body 하단 정의

예시코드
<html> <head> <meta charset="UTF-8"> <title>stove launcher</title> <script> function runLauncher() { // 런처 실행 코드 } </script> </head> <body> <button onclick="runLauncher">게임 실행</button> <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher.js" defer /> </body> </html>
HTML
복사

03. 연동 방식

사용 목적과 정책에 따라 패키징 방식과 개별 방식으로 연동 할 수 있습니다.

03.A. 패키징 방식 연결하기

패키징 방식 연동은 런처실행/점검/화이트리스트 를 한번에 연동하는 방식 입니다.
<html> <head> <meta charset="UTF-8"> <title>stove launcher</title> </head> <body> // ...컨텐츠 내용 생략 <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js" defer /> </body> </html>
HTML
복사

03.B. 개별 방식 연결하기

개별 방식 연동은 사용 기능에 따라 각 기능(런처실행/점검/화이트리스트) lib 를 연결 합니다.
<html> <head> <meta charset="UTF-8"> <title>stove launcher</title> </head> <body> // ...컨텐츠 내용 생략 <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/white-user.js" defer /> <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/maintenance.js" defer /> <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher.js" defer /> </body> </html>
HTML
복사

04. 런처 실행

launcher.run({}) 메서드를 통해서 STOVE 런처를 실행 합니다.

04.A. Parameter

Parameter
Type
Requirement
Default Value
Description
gameId
String
Y
-
게임 아이디 또는 게임 넘버
nation
String
N
KR
쿠키값 NNTO 쿠키 정보가 없는 경우 defaultValue = ‘KR’
lang
String
N
EN
쿠키값 LOCALE 쿠키 정보가 없는 경우 defaultValue = ‘EN’
inflow_path
String
N
-
게임 아이디와 동일
isSkipMaintenance
Boolean
N
false
점검 체크 유무 - 기본 점검 체크 함.
gameMarketName
String
N
PC_MARKET
웹에서 런처 실행 시 defaultValue = ‘PC_MARKET’
executeWaitingTime
Number
N
5
실행 딜레이 만료 체크 시간(초 단위)
isSkipMaintenance : false 웹에서 게임점검을 체크를 사용하지 않을 경우 false 로 사용 해당 Param을 설정 시 화이트리스트도 체크 하지 않습니다.

04.B. Example

런처 메서드(launcher.run({}))를 호출하면 응답값으로 Promise 객체의 then 과 catch 메서드를 통해 결과값을 받을 수 있습니다.
window.stoveJsService.launcher.run({ gameId: 'STOVE_EPIC7', nation: 'KR', lang: 'KO', isSkipMaintenance: true }) .then(data => { console.log('런처 실행 성공시 처리', data); }) .catch(error => { console.log('런처 실행 실패시 처리', error); });
JavaScript
복사
사용예제
<html> <head> <meta charset="UTF-8"> <title>stove launcher</title> <script src="https://js-cdn.gate8.com/libs/stove-js-service/latest/launcher-pack.js" defer /> <script> function initializeJsService() { window.stoveJsService = window.stoveJsService || {}; } function startLoadingForLauncher() { // 런처 실행 로딩 시작 UI 처리 } function stopLoadingForLauncher() { // 런처 실행 로딩 종료 UI 처리 } function errorHandler( errorCode ) { switch (errorCode) { case 601: // 런처가 설치되어 있지 않습니다. 런처를 다운로드한 다음 설치해주세요.break; case 602: // 런처 URI가 없는 경우 반환합니다.break; case 'API 리턴 오류 코드': // 런처, 점검 그리고 화이트유저 api 호출 시 발생한 오류에 대한 처리가 필요한 경우 case 추가 정의break; default: // 기타 오류 공통 처리break; } } function runLauncher() { if (!window.stoveJsService.launcher) { alert('현재 런처 실행 준비가 되어 있지 않습니다!') return; } startLoadingForLauncher(); window.stoveJsService.launcher.run({ gameId: 'STOVE_EPIC7' }).then(() => { // 런처 실행 성공 시 처리 }).catch(error => { // 런처 실행 실패시 처리errorHandler(error.code) }).finally(() => { stopLoadingForLauncher(); }); } </script> </head> <body onload="initializeJsService"> <button onclick="runLauncher">게임 실행</button> </body> </html>
HTML
복사

C. Error Code

Error Code
Constant
Description
601
NOT_FOUND_LAUNCHER
클라이언트 환경에 런처 설치가 안되어 있는 경우 반환
602
NOT_FOUND_PROTOCOL_URI
런처 URL이 없는 경우
503100
GAME_MAINTENANCE
실행한 게임 서비스가 점검 중일 때 반환
-
-
각 API의 응답 개별 코드 else 처리 Error Status Handling List 참고

05. 연동 테스트 페이지