1.0.39 • Published 5 hours ago

gamepot v1.0.39

Weekly downloads
-
License
ISC
Repository
-
Last release
5 hours ago

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 를 제외하고 배포한다.

1.0.40

5 hours ago

1.0.39

9 days ago

1.0.38

9 days ago

1.0.37

1 month ago

1.0.16

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.11

2 years ago

1.0.12

2 years ago

0.0.1

2 years ago