다음을 통해 공유


Facebook 및 Unity를 사용한 PlayFab 인증 설정

이 자습서는 Facebook 및 Unity를 사용한 PlayFab 인증의 예제를 안내합니다.

요구 사항

구현

Facebook 응용 프로그램 등록

Facebook 개발자 포털로 이동하여 시작:

  1. 마우스를 내 앱 단추 위로 이동합니다.
  2. 아래 그림과 같이 새 앱 추가를 선택합니다.

Facebook 새 앱 추가

응용 프로그램 팝업이 열립니다.

  1. 응용 프로그램 이름을 입력합니다.
  2. 연락처 전자 메일을 입력합니다.

참고 항목

아래 그림과 같이 고유한응용 프로그램 이름전자 메일을 입력했는지 확인합니다.

Facebook 새 앱 ID

  1. 설정 탭으로 이동합니다.
  2. 그런 다음 기본 하위 탭으로 이동합니다.
  3. 응용 프로그램 ID를 찾습니다.
    • 쉽게 액세스할 수 있는 안전한 곳에 복사합니다. 나중에 Facebook SDK를 설정하기 위해 사용할 것입니다.

Facebook 앱 ID 저장

Facebook 액세스 토큰 도구로 이동합니다.

  1. 목록에서 을 찾습니다.
  2. 할당된 사용자 토큰이 있는지 확인합니다.

참고 항목

지정된 사용자 토큰이 없는 경우 화면 오른쪽에 있는 버튼을 사용하여 사용자 토큰을 요청하세요. 새 사용자 토큰이 필요할 때마다 이 페이지를 참조하세요. PC에서 테스트하는 동안 권한 부여에 실패하면 토큰 만료 때문일 가능성이 가장 높습니다. 페이지를 새로 고침하여 새 사용자 토큰을 받은 다음 다시 테스트합니다.

Facebook 액세스 토큰 도구

  1. Application Manager 페이지에서 + 제품 추가로 이동합니다.
  2. 페이스북 로그인 항목을 찾고 시작을 선택합니다.

Facebook 로그인 시작

로그인 제품 설정 페이지가 열립니다.

  1. 로그인 제품 설정 페이지가 열려 있는지 확인합니다.
  2. 클라이언트 OAuthWeb OAuth 모두 켜져 있는지 확인합니다.

Facebook 로그인 제품 설정

Facebook SDK 설정

Unity 프로젝트 열기:

  1. 파일 메뉴에서 Facebook을 선택합니다.
  2. 그런 다음 설정 편집을 선택합니다.

Facebook Unity 프로젝트 설정 열기

Inspector 창에 현재 Facebook SDK 구성이 표시됩니다.

  • 아래 그림과 같이 해당 필드에 응용 프로그램 ID를 입력합니다.

Facebook SDK 구성에서 앱 ID를 입력합니다.

단순 인증 스크립트

다음 그림과 같이 새 게임 개체를 만들고 PlayfabFacebookAuthExample로 이름을 바꿉니다.

새 게임 개체 만들기

  1. PlayfabFacebookAuthExample.cs라는 스크립트를 만듭니다.
  2. 아래 그림과 같이 게임 개체를 추가합니다.

게임 개체에 예제 스크립트 추가

PlayfabFacebookAuthExample.cs 안에 다음 코드를 넣습니다.

// Import statements introduce all the necessary classes for this example.
using Facebook.Unity;
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;
using LoginResult = PlayFab.ClientModels.LoginResult;

public class PlayfabFacebookAuthExample : MonoBehaviour
{
    // holds the latest message to be displayed on the screen
    private string _message;

    public void Start()
    {
        SetMessage("Initializing Facebook..."); // logs the given message and displays it on the screen using OnGUI method

        // This call is required before any other calls to the Facebook API. We pass in the callback to be invoked once initialization is finished
        FB.Init(OnFacebookInitialized);  

    }

    private void OnFacebookInitialized()
    {
        SetMessage("Logging into Facebook...");

        // Once Facebook SDK is initialized, if we are logged in, we log out to demonstrate the entire authentication cycle.
        if (FB.IsLoggedIn)
            FB.LogOut();

        // We invoke basic login procedure and pass in the callback to process the result
        FB.LogInWithReadPermissions(null, OnFacebookLoggedIn);
    }

    private void OnFacebookLoggedIn(ILoginResult result)
    {
        // If result has no errors, it means we have authenticated in Facebook successfully
        if (result == null || string.IsNullOrEmpty(result.Error))
        {
            SetMessage("Facebook Auth Complete! Access Token: " + AccessToken.CurrentAccessToken.TokenString + "\nLogging into PlayFab...");

            /*
             * We proceed with making a call to PlayFab API. We pass in current Facebook AccessToken and let it create
             * and account using CreateAccount flag set to true. We also pass the callback for Success and Failure results
             */
            PlayFabClientAPI.LoginWithFacebook(new LoginWithFacebookRequest { CreateAccount = true, AccessToken = AccessToken.CurrentAccessToken.TokenString},
                OnPlayfabFacebookAuthComplete, OnPlayfabFacebookAuthFailed);
        }
        else
        {
            // If Facebook authentication failed, we stop the cycle with the message
            SetMessage("Facebook Auth Failed: " + result.Error + "\n" + result.RawResult, true);
        }
    }

    // When processing both results, we just set the message, explaining what's going on.
    private void OnPlayfabFacebookAuthComplete(LoginResult result)
    {
        SetMessage("PlayFab Facebook Auth Complete. Session ticket: " + result.SessionTicket);
    }

    private void OnPlayfabFacebookAuthFailed(PlayFabError error)
    {
        SetMessage("PlayFab Facebook Auth Failed: " + error.GenerateErrorReport(), true);
    }

    public void SetMessage(string message, bool error = false)
    {
        _message = message;
        if (error)
            Debug.LogError(_message);
        else
            Debug.Log(_message);
    }

    public void OnGUI()
    {
        var style = new GUIStyle { fontSize = 40, normal = new GUIStyleState { textColor = Color.white }, alignment = TextAnchor.MiddleCenter, wordWrap = true };
        var area = new Rect(0,0,Screen.width,Screen.height);
        GUI.Label(area, _message,style);
    }
}

테스트

편집기에서 응용 프로그램 실행

  1. 재생 단추를 선택합니다. Facebook이 초기화되고 인증 호출이 이루어지면 게임 보기에 Facebook 인증 대화 상자가 나타납니다.
  2. 사용자 토큰을 입력합니다.
  3. 다음 그림과 같이 보내기 성공 단추를 선택합니다.

Facebook 인증 대화 상자에 사용자 토큰 입력

  • 콘솔 출력을 확인합니다. 아래 그림과 같이 디버그 문이 렌더링되어야 합니다.
  • 오류가 표시되지 않으면 인증이 성공했음을 의미합니다.

디버그 콘솔 출력

Android에서 응용 프로그램 실행

Android에서 응용 프로그램을 실행하기 전에 추가 구성 단계를 수행해야 합니다.

  • 먼저 Android 플랫폼이 선택되어 있고 고유한 패키지 ID가 설정되어 있는지 확인해야 합니다(아래 예제 참조).

참고 항목

나만의 고유한패키지 ID를 만들어야 합니다.

Android 패키지 ID 설정

선택적 단계: Open SSL을 설치하고 PATH를 환경 변수에 추가합니다. 누락된 경우 Unity 빌드 중에 무해한 오류가 발생합니다. 이 오류는 빌드를 중지하거나 실행에 영향을 주지 않습니다.

다음으로, Facebook 응용 프로그램 콘솔에서:

  1. 기본 설정으로 이동합니다.
  2. 아래 제공된 예제에 표시된 대로 + 플랫폼 추가를 선택합니다.

Facebook 앱 콘솔 플랫폼 추가

  • 그런 다음 사용 가능한 플랫폼 목록에서 Android를 선택합니다.

Facebook Android 플랫폼 선택

플랫폼별 설정이 있는 패널이 표시됩니다.

  • 패키지 ID를 입력합니다.
  • 저장을 선택합니다(저장 버튼은 페이지의 오른쪽 하단에 숨겨져 있습니다).

Android 플랫폼 설정

Android 장치에서 정상적으로 응용 프로그램을 빌드하고 실행합니다.

  • 응용 프로그램이 Facebook 로그인 페이지로 시작됩니다.
  • 로그인하면 화면에서 변경되는 메시지를 볼 수 있습니다.
  • 마지막으로 PlayFab에 성공적으로 인증되었다는 메시지가 표시됩니다. 아래에 제공된 예제는 전체 과정을 보여줍니다.

Android에서 PlayFab Facebook 인증

iOS에서 응용 프로그램 실행

iOS에서 응용 프로그램을 실행하기 전에 추가 구성 단계를 수행해야 합니다.

  • 먼저 iOS 플랫폼을 선택했는지 확인합니다.
  • 그런 다음, 아래 제공된 예제에 표시된 대로 고유한 번들 ID를 설정합니다.
  • 나만의 고유한패키지 ID를 만들어야 합니다.

iOS 번들 ID 설정

다음으로, Facebook 응용 프로그램 콘솔에서

  1. 기본 설정으로 이동합니다.
  2. 아래 제공된 예제에 표시된 대로 + 플랫폼 추가를 선택합니다.

Facebook 앱 콘솔 플랫폼 추가

  • 사용 가능한 플랫폼 목록에서 iOS를 선택합니다.

Facebook iOS 플랫폼 선택

플랫폼별 설정이 있는 패널이 표시됩니다.

  • 패키지 ID를 입력합니다.
  • 저장 버튼을 선택합니다(저장 버튼은 페이지의 오른쪽 하단에 숨겨져 있습니다).

iOS 플랫폼 설정

  • 다음으로, 평소 대로 응용 프로그램을 빌드합니다.
  • 이 작업이 완료되면 XCode를 사용하여 프로젝트를 엽니다.

XCode를 사용하여 iOS 프로젝트 열기

  • 프로젝트를 선택하여 프로젝트 설정을 엽니다.
  • 번들 ID가 고유한 패키지 ID와 일치하는지 확인합니다.

iOS 프로젝트 설정: 번들 ID 확인

  • 올바른 장치를 선택했는지 확인해야 합니다.

iOS 프로젝트 설정: 장치 선택

  • 올바른 ID 팀을 선택합니다.

iOS 프로젝트 설정: ID 팀 선택

마지막으로 응용 프로그램을 정상적으로 실행합니다.

  • 시작되면 응용 프로그램에서 웹 브라우저를 사용하여 Facebook에 로그인할 수 있습니다.
  • 완료되면 PlayFab 인증이 호출되고 메시지에 결과가 표시됩니다.

iOS에서 PlayFab Facebook 인증

PlayFab 게임 관리자를 통한 확인

게임 관리자에서 PlayFab 타이틀을 엽니다.

  • 대시보드로 이동합니다.
  • PlayStream 디버거 패널을 참조하여 최신 이벤트를 확인합니다. 다음 예제에 표시된 대로 Facebook 인증 이벤트가 표시됩니다.

PlayStream 디버거 Facebook 인증 이벤트

이 시점에서 PlayFab에 대한 Facebook 인증이 성공적으로 통합됩니다.