gamepot v1.0.39
GamePot Javascript SDK
1. 시작하기
개발 환경 구성
브라우저에서 GAMEPOT을 사용하기 위한 시스템 환경은 다음과 같습니다.
[ 시스템 환경 ]
- 최소사항:
크롬 4
,IE 8
,Firefox 3.5
,Safari 4
,Opera 10.50
등
자바스크립트 추가
다운로드한 Javascript SDK 파일을 <header>
블록 또는 <body>
블록 내에 추가합니다.
GP
global variable을 통해 기능을 사용할 수 있습니다\ 게임팟 스크립트 로드 후 동일한 변수명으로 재 선언되지 않도록 주의해주세요.
<script src="https://cdn.gamepot.io/js/gamepot-sdk-javascript-{SDK 버전}.min.js"></script>
2. 초기화
웹페이지 로딩이 완료될 때 실행할 수 있도록 window.onload = function() {...}
또는 jQuery를 사용하는 경우 $(document).ready(function() {...})
블록 내에서 초기화합니다.
<html>
<head></head>
<body>
<!-- YOUR WEB HTML CODES -->
<script>
window.onload = function () {
// 프로젝트 ID는 게임팟 대시보드에서 확인할 수 있습니다.
var project_id = "[PROJECT_ID]";
var gamepotConfig = {
// 백엔드 API URL 게임팟 엔터프라이즈가 아닌 경우 필요하지 않습니다.
api_url: "",
// 구글 로그인을 사용하는 경우 아래와 같이 구글 API 클라이언트 ID를 입력
google_signin_client_id: "",
// 페이스북 로그인 사용하는 경우 아래와 같이 Facebook 앱 ID를 입력
facebook_app_id: "",
// 애플 로그인을 지원하는 경우 아래와 같이 Client ID 를 입력
apple_client_id: "",
// 카카오 Client ID 를 입력
kakao_client_id: "",
// 플러그인 서버 URL
plugin_url: "",
};
// 게임팟 초기화
GP.initialize(project_id, gamepotConfig);
};
</script>
<!-- YOUR WEB HTML CODES -->
</body>
</html>
3. 로그인, 로그아웃, 회원 탈퇴
구글, 페이스북, 이메일 등 다양한 로그인 SDK를 통합하여 사용할 수 있습니다.
구글(API CONSOLE) 콘솔 설정
Google API Console 에서 프로젝트를 생성 > 사용자 인증정보 만들기 > OAuth 클라이언트 ID > 웹 어플리케이션 유형으로 생성 후 클라이언트 ID 값을 사용합니다.
예시) 533847112608-qv8149tijkoh0vljrpeashk0udf39eoe.apps.googleusercontent.com
페이스북 콘솔 설정
Facebook Developers 에서 앱 생성 후 앱 ID 사용
예시) 149235210820417
로그인
로그인 UI는 개발사에서 구현하고, 로그인 버튼 클릭 시에 연동합니다.
소셜 플랫폼 로그인
// 로그인 타입 정의
// GP.ChannelType.GOOGLE: 구글
// GP.ChannelType.FACEBOOK: 페이스북
// GP.ChannelType.EMAIL: 이메일
// GP.ChannelType.APPLE: 애플
// GP.ChannelType.KAKAO: 카카오
// 페이스북 로그인 버튼을 눌렀을 때 호출
GP.login(GP.ChannelType.FACEBOOK, function (user, error) {
if (error) {
// 로그아웃 실패
alert(error); // 오류 메세지
} else {
// 로그인 성공
alert(user.id);
alert(user.projectId);
alert(user.email);
alert(user.agree);
alert(user.verify);
}
});
이메일 로그인
// <input>태그 등에서 사용자로 부터 입력
var email_id = $("#input-email-id").val();
var email_password = $("#input-email-password").val();
$("#email-result-status").html("");
GP.signIn(GP.ChannelType.EMAIL, email_id, email_password, {
onSuccess: function (gamepotUserInfo) {
console.log("이메일 로그인 성공", gamepotUserInfo);
$("#email-result-status").html("로그인 성공. memberid: " + gameUserInfo.memberid + ", userid: " + gameUserInfo.userid);
},
onCancel: function () {
console.log("이메일 로그인 취소");
},
onFailure: function (gamepotError) {
console.log("이메일 로그인 실패: " + gamepotError.toString());
var msg = "";
switch (gamepotError.getCode()) {
case GP.Error.EMAIL_AUTH_WRONG_EMAIL_FORMAT:
msg = "이메일 형식이 올바르지 않습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_EMPTY:
msg = "비밀번호를 입력해주세요.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_LENGTH:
msg = "비밀번호는 최소 8자, 최대 32자 까지 입력할 수 있습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD:
msg = "비밀번호가 일치하지 않습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_BLOCKED:
msg = "비밀번호 오류 횟수 초과로 로그인할 수 없습니다.";
break;
case GP.Error.EMAIL_AUTH_NOT_FOUND:
msg = "연결 계정이 존재하지 않습니다.";
break;
default:
msg = gamepotError.getMessage();
break;
}
$("#email-result-status").html(msg); // 결과 표시 예.
},
});
이메일 가입
// <input>태그 등에서 사용자로 부터 입력
var new_email_id = $("#input-email-new-id").val();
var new_email_password = $("#input-email-new-password").val();
$("#email-result-status2").html("");
GP.Channel.emailRegister(new_email_id, new_email_password, {
onSuccess: function (gamepotUserInfo) {
console.log("이메일 가입 성공", gamepotUserInfo);
},
onCancel: function () {
console.log("이메일 가입 취소");
},
onFailure: function (gamepotError) {
console.log("이메일 가입 실패: " + gamepotError.toString());
var msg = "";
switch (gamepotError.getCode()) {
case GP.Error.EMAIL_AUTH_WRONG_EMAIL_FORMAT:
msg = "이메일 형식이 올바르지 않습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_EMPTY:
msg = "비밀번호를 입력해주세요.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_LENGTH:
msg = "비밀번호는 최소 8자, 최대 32자 까지 입력할 수 있습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD:
msg = "비밀번호가 일치하지 않습니다.";
break;
case GP.Error.EMAIL_AUTH_WRONG_PASSWORD_BLOCKED:
msg = "비밀번호 오류 횟수 초과로 로그인할 수 없습니다.";
break;
case GP.Error.EMAIL_AUTH_NOT_FOUND:
msg = "연결 계정이 존재하지 않습니다.";
break;
case GP.Error.EMAIL_AUTH_ALREADY_IN_USE:
msg = "이미 사용 중인 계정입니다.";
break;
default:
msg = gamepotError.getMessage();
break;
}
$("#email-result-status2").html(msg);
},
});
로그아웃
현재 회원 계정을 로그아웃합니다.
GP.logout(function (result) {
// 로그아웃 아웃 완료
if (result) {
alert("로그아웃 성공");
}
});
회원탈퇴
GP.deleteMember(memberId, function (result) {
// 로그아웃 아웃 완료
if (result) {
alert("탈퇴 성공");
}
});
본인 인증
민원인(본인) 명의로 등록 및 가입하신 이동통신사(SKT, KT, LG, 알뜰폰)와 연계하여 주민등록번호 없이 휴대폰번호를 통해 본인확인을 제공하는 서비스입니다.
GP.Identity({ userId }, function (resp) {
if (resp.success) {
alert("success");
} else {
alert(resp.error);
}
});
원탭 로그인 커스텀 방법 안내
URL 교체
로그인 완료 functon 추가
function onSignInGoogle(user) { console.log(user); }
버튼 보일 곳에 아래를 추가 한다.
컴피그에 아래를 추가 한다.
var gamepotConfig = {
...
google_signin_client_id: "google_client_id",
google: {
"callback" : onSignInGoogle, // callback 버튼
"renderButton" : "renderButton", // 버튼 DIV 이름
"option" : { // google button option
'size' : 'large',
'theme' : 'outline'
}
},
...
};
X-API-KEY 오류 발생 방지를 위해서 꼭!!!
프로젝트 설정 < WEB < 허용 도메인 에 꼭 호출하는 도메인을 넣어주세요.
log_skip 기능 추가 ( 2022-11-14 )
var gamepotConfig = {
...
log_skip: true,
....
};
웹에서 로그인시에 로그인 로그를 저장하지 않는다.
header 커스텀 옵션 기능 추가 ( 2022-11-14 )
x-header-options 에 커스텀 옵션을 추가할 수 있도록 추가
개선 사항 ( 2023-10-09 )
getBackendSave 에 false 일 경우 로그인 처리 후에 리턴되도록 추가 GP.signupWithProvider(provider, providerId, providerEmail, "","", function( user, error) { alert(user.id); }); 소셜 계정을 임으로 생성가능하도록 수정
배포 방법
package.json 에 버전 업그레이드 후 npm run deploy
정식 배포는 npm run deploy-release
NPM 배포 방법
npm publish ./ --tag beta 베타로 배포 후에 추후 tag 를 제외하고 배포한다.