홈 (PlayFab) Google Play Game 로그인
포스트
취소

(PlayFab) Google Play Game 로그인

PlayFab과 GPGS(Google Play Game Serivce) 연결 방법에 대해 알아보겠습니다.

📚 기본 준비물


PlayFab에 Google 콘텐츠 추가

  1. PlayFab에 접속합니다.

  2. 빌드의 추가 콘텐츠 -> Google 순서로 접속합니다.

  3. Google과 연결하려면 다음과 같은 정보가 필요합니다.

    • Google 앱 패키지 ID

    • Google 앱 라이선스 키

    • Google OAuth 클라이언트 ID

    • Google OAuth 클라이언트 암호

    • 서비스 계정 키 (선택)

차례대로 알아보도록 하겠습니다.

Google 앱 패키지 ID

  1. Google Play Console에 접속합니다.

  2. 홈 화면에서 자신이 개발 중인 앱 이름 아래의 ID를 복사하시면 됩니다.


Google 앱 라이선스 키

이 필드는 영수증 유효성 검사를 위한 필드입니다. 로그인과는 관련 없지만 필요하면 넣도록 합시다.

  1. Google Play Console에 접속합니다.

  2. 자신의 앱에 접속합니다.

  3. 메뉴의 수익 창출 설정을 클릭합니다.

  4. 라이선스를 찾으시고 복사하시면 됩니다.


Google OAuth 클라이언트 ID

  1. Google Cloud Console에 접속합니다.

  2. 사용자 인증 정보 클릭

  3. 유니티에 연결할 때 사용했던 클라이언트 ID를 복사하시면 됩니다.


Google OAuth 클라이언트 암호

  1. Google Cloud Console에 접속합니다.

  2. 사용자 인증 정보 클릭

  3. 유니티에 연결할 때 사용했던 클라이언트 ID 클릭

  4. 클라이언트 보안 비밀번호를 복사하시면 됩니다.


여기까지 잘 따라오셨으면 설정 저장을 누르시면 됩니다.

Unity 코드 테스트

Unity에서 Google 로그인 후 Google 인증 코드를 가지고 PlayFab에 로그인하는 방법입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
using System;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;

public class TestLogin : MonoBehaviour
{
    public void Start()
    {
        GoogleLogin();
    }

    // PlayFab Google Login
    private void GoogleLogin()
    {
        // 구글 초기화
        GoogleInit();

        // 구글 연동 진행
        Social.localUser.Authenticate((bool success) =>
        {
            if (!success)
            {
                Debug.Log("Google Play 인증 실패!");
                return;
            }

            // 구글 서버 인증코드 가져오기
            string serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode();

            // PlayFab 보낼 메시지 만들기
            var request = new LoginWithGoogleAccountRequest()
            {
                TitleId = PlayFabSettings.TitleId,
                ServerAuthCode = serverAuthCode,    // 구글 서버 인증 코드
                CreateAccount = true                // 해당 게정이 없을 때 PlayFab 계정을 자동 생성할지 여부
            };

            // PlayFab 로그인 요청 보내기
            PlayFabClientAPI.LoginWithGoogleAccount(request, OnLoginSuccess, OnLoginFailed);
        });
    }

    // Google Play 초기화
    private void GoogleInit()
    {
        // 구글(GPGS) 초기화 설정
        PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
        .AddOauthScope("profile")
        .RequestServerAuthCode(false)
        .Build();
        PlayGamesPlatform.InitializeInstance(config);

        // 로그 활성화/비활성화
        PlayGamesPlatform.DebugLogEnabled = true;
        PlayGamesPlatform.Activate();
    }

    // PlayFab 로그인 성공 시 호출
    private void OnLoginSuccess(LoginResult result)
    {
        Debug.Log("PlayFab 로그인 성공!");
        Debug.Log("PlayFab Id : " + result.PlayFabId);
    }

    // PlayFab 로그인 실패 시 호출
    private void OnLoginFailed(PlayFabError error)
    {
        Debug.Log("PlayFab 로그인 실패!");
        Debug.Log("PlayFab Error : " + error.ErrorMessage);
    }
}

💡 참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.