PUN Classic (also called PUN1) is the original and first major version of PUN. It is now replaced by PUN2 which is refactored and enhanced. We highly recommend starting new projects with PUN2 and if possible migrating existing ones from PUN1 to PUN2 by following our "Migration Notes". PUN Classic will be maintained for the coming months. We will fix important bugs and support new Unity versions but new features will be added only to PUN2.

페이스북을 이용한 커스텀 인증

Contents

개요  

이 튜토리얼에서는 Facebook 커스텀 인증 기능이 있는 Photon Unity Networking (PUN)프로젝트를 생성할 것입니다.

Back To Top

페이스북 어플리케이션 생성  

먼저 페이스북 개발자 웹사이트에서 어플리케이션을 생성 해야 합니다.

Apps -> Create a New App 을 클릭하여 앱의 이름을 입력 하고 Create App 버튼을 누릅니다. Apps -> [your_app] 을 선택하여 App IDApp Secret을 복사 합니다.

Back To Top

Photon Dashboard  

Photon Dashboard를 열어서, 사용 할 App Id 를 선택하여 상세보기(See Details)를 클릭 합니다. Authentication 탭으로 가서 Allow anonymous clients to connect, independently of configured providers.를 체크 해제 합니다. Facebook authentication provider 를 선택하고 App IDSecret 를 붙여 넣습니다.Reject all clients if not available를 체크 합니다.

Back To Top

PUN 설정하기 

유니티를 열어 PUN을import 하고 setup 합니다. 유니티의 메인 메뉴에서 Facebook -> Edit Settings 를 선택 후 페이스북 어플리케이션의 NameApp ID를 입력 합니다.

Back To Top

커스텀 인증 구현  

새로운 C# 스크립트를 생성 하고 스크립트를 씬위의 객체에 붙여 오픈 합니다. 다음의 페이스북 초기화와 로그인 코드를 사용 합니다 :


    using Facebook;
    void Awake()
    {
        FB.Init(SetInit, OnHideUnity);
    }

    private void SetInit()
    {
        enabled = true;
        if (FB.IsLoggedIn)
        {
            Debug.Log("SetInit()");
            OnLoggedIn();
        }
    }

    private void OnHideUnity(bool isGameShown)
    {
        Debug.Log("OnHideUnity()");
    }  

    void LoginCallback(FBResult result)
    {
        if (FB.IsLoggedIn)
        {
            OnLoggedIn();
        }
    }

페이스북 로그인 다이얼로그를 오픈 하기 위한 버튼을 추가 합니다:


    void OnGUI()
    {
        if (!FB.IsLoggedIn)
        {
            if (GUI.Button(new Rect(10, 10, 100, 20), "Login to Facebook")) {
                FB.Login("email", LoginCallback);
            }
        }
        GUI.Label(new Rect(200, 50, 100, 20), PhotonNetwork.connectionStateDetailed.ToString());
    }

PUN 에서 페이스북 인증을 이용하기 위해 아래코드를 추가 합니다:


    void OnLoggedIn()
    {
        PhotonNetwork.AuthValues = new AuthenticationValues();
        PhotonNetwork.AuthValues.AuthType = CustomAuthenticationType.Facebook;
        PhotonNetwork.AuthValues.UserId = FB.UserId; // alternatively set by server
        PhotonNetwork.AuthValues.AddAuthParameter("username", FB.UserId);
        PhotonNetwork.AuthValues.AddAuthParameter("token", FB.AccessToken);
        PhotonNetwork.ConnectUsingSettings("1.0");
    }

Back To Top

어플리케이션 디플로이  

페이스북은 어플리케이션 호스팅을 위해 https 를 사용하는 웹 서버가 필요 합니다.

이 웹 서버는 IIS, WAMP 등과 같은 로컬 웹 서버를 사용할 수 있습니다. 하지만 가장 쉬운 방법은 Dropbox 에 .unity3d 파일을 추가 하는 것 입니다. 드롭박스의 퍼블릭 폴더에 .unity3d 파일을 추가하고 이 파일의 링크를 카피하여 페이스북 앱 웹 사이트 Unity Binary URL에 붙여 넣으시면 됩니다.

Back To Top

결론  

이 튜토리얼에서는 페이스북 API와 PUN 의 통합에 필요한 기초 단계를 다루어 봤습니다.
아직 이해가 가지 않은 부분이 있나요? 언제든지 forum으로 오셔서 질문 해주시기 바랍니다. 행복한 코딩 하세요!

To Document Top