Unity/서버

210709_ 페이스북 로그인

minquu 2021. 7. 9. 11:32
반응형

어제는 카카오톡 로그인을 하였다.

 

이번에는 페이스북 로그인을 할 것

 

유니티에서 새 프로젝트를 만들어준다.

 

 

https://developers.facebook.com/docs/unity/gettingstarted

 

 

 

컨트롤 클릭으로 새창으로 열기

 

 

 

 

 

 

이 페이지로 들어와 진다.

 

 

위에 내앱 클릭

 

앱 만들기 클릭 게임으로 

 

앱 이름  적기

 

fb 는 들어가면 안된다.

 

만들어준다.

 

 

 

만들면 이런 대쉬보드로 오게 된다.

 

설정 - 기본 설정

 

 

 

 

앱 ID 와 시크릿 코드를 사용 할 것이다.

 

https://developers.facebook.com/docs/unity

 

 

유니티 sdk 를 다운 받아준다.

 

유니티에서 새로운 프로젝트를 만들어준다.

 

만들면 안드로이드 플랫폼 변경하기

 

다운 받은 페이스북 패키지를 임포트 해준다.

 

다 되면 페이스북 SDK의 이그젬플 - Main menu 열기

 

 

리졸빙 끝 

 

 

메인 메뉴 열어서 플레이를 하면

 

 

이러한 화면이 뜬다.

 

페이스북은 빌드를 하지않아도 테스트를 할 수 있는 환경을 만들어 주었다.

 

 

FB init 를 눌르주면 밑에 버튼들이 활성화된다.

 

클래식 로그인 버튼 클릭

이 창이 뜬다.

 

Find 에세스 토큰 누르면

 

 

이 앱 토큰 저장하기

 

 

권한을 부여해야합니다. 클릭하기

 

 

저 페이지는 도구 - 그래프 API 탐색기로 들어갈수있다. 

 

 

 

 

 

내 앱 선택 후 

제네레이트 에세스 토큰 눌르면 토큰이 생긴다.

 

둘 다 메모장에 저장해주기

 

 

 

유니티에서 그 토큰을 넣어주기

 

 

샌드 서섹스 눌러주기

 

--------

 

로그 뷰 떄문에 다시 한다..

 

 

플레이 끄고, 빌드 세팅에서 두 개 넣어주기

 

다시 플레이 누르고

 

 

Log 버튼을 누르면

 

이런게 뜬 것이다. 

 

로그가 찍힌다.

 

 

여기가지하면 로그인은 된것이다.

 

------

 

도큐먼터리를 본다.

 

유니티

 

 

페이스북 - 에디터 세팅 - 

 

이런 게 뜬다.

 

위의 앱 ID 를 

 

 

유니티 에 넣어준다.

 

 

 

기존거 지워주고, 빌드세팅에 모든 씬 넣고

 

플레이어 세팅 가서

 

패키지 이름 내껄로 바꾸고

민 레벨은 15렙 이상으로 하기

 

그러면 핸들러가 돌아감

 

 

 

플랫폼 추가

 

 

 

패키지 이름에 패키지 네임

 

클래스 에 클래스 네임 넣기

 

캐 해쉬를 넣어야하는데 제레네이트 해도 안된다.

SDK 가 기본 유니티로 되어있다.

 

안드로이드 스튜디오를 연다.

 

SDK  체크 해제해주기

 

 

 

위의 경로로 유니티 SDK 바꾸주고,

 

레벨을 맞춰서 체크하고 어플라이 해준다.

 

없으면 설치를 해야할 것이다.

 

설치하고 유니티 SDK 경로 변경해주기

 

 

그래도

 

OpenSSL 설치를 해야한다.

그리고 환경변수를 바꿔줘야한다.

 

 

https://code.google.com/archive/p/openssl-for-windows/downloads

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

이 링크로 가서 

 

 

두번쨰거 다운 받기 

 

 

C 드라이브에 넣기

 

 

 

편집

 

 

 

빈 폴더 추가해주기

 

 

 

이번에는 키툴이 없다

 

위에 환경 변수 넣은 것 처럼 

 

 

 

자바 환경변수를 넣어주고, 재부팅해준다.

 

정상적으로 뜬다.

 

 

이어서 플랫폼에 위에 키를 넣어준다.

 

위에서 카테고리를 선택해주고 변경내용저장해야한다.

 

우리는 구글 플레이에 저장 안되서 그냥 이 이름으로 사용하기 해야함

 

 

메인메뉴가 제일 위로가게 해서 빌드해준다.

 

이런식으로 빌드를 하면된다.

 

https://developers.facebook.com/docs/unity/examples

예제를 보자

 

 

이제 로그인 코딩을 칠 것이다

 

 

 

 

원래 우리 씬으로 돌아와서

 

UI 만들어 준다.

 

 

 

 

버튼 하나 만들어주고

 

App 스크립터 만들기

 

 

그냥 app 에 버튼 클릭하면 로그 나오게하기 

 

app 스크립터 수정

 

https://developers.facebook.com/docs/unity/examples

이거 기반으로

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Facebook.Unity;

public class App : MonoBehaviour
{
    public Button btnFacebook;
    private List<string> perms = new List<string>() { "public_profile", "email" };

    private void Awake()
    {
        if (!FB.IsInitialized)
        {
            // Initialize the Facebook SDK
            FB.Init(InitCallback, OnHideUnity);
        }
        else
        {
            // Already initialized, signal an app activation App Event
            FB.ActivateApp();
        }
    }

    void Start()
    {
        this.btnFacebook.onClick.AddListener(() => {
            Debug.Log("facebook login");
            FB.LogInWithReadPermissions(perms, AuthCallback);
        });
    }

    private void InitCallback()
    {
        if (FB.IsInitialized)
        {
            // Signal an app activation App Event
            FB.ActivateApp();
            // Continue with Facebook SDK
            // ...
        }
        else
        {
            Debug.Log("Failed to Initialize the Facebook SDK");
        }
    }

    private void OnHideUnity(bool isGameShown)
    {
        if (!isGameShown)
        {
            // Pause the game - we will need to hide
            Time.timeScale = 0;
        }
        else
        {
            // Resume the game - we're getting focus again
            Time.timeScale = 1;
        }
    }

    private void AuthCallback(ILoginResult result)
    {
        if (FB.IsLoggedIn)
        {
            // AccessToken class will have session details
            var aToken = Facebook.Unity.AccessToken.CurrentAccessToken;
            // Print current access token's User ID
            Debug.Log(aToken.UserId);
            // Print current access token's granted permissions
            foreach (string perm in aToken.Permissions)
            {
                Debug.Log(perm);
            }
        }
        else
        {
            Debug.Log("User cancelled login");
        }
    }
}

이 코드 넣고, 빌드해보기 

 

샘플 씬만 넣어서 빌드하기

 

 

녹스에 오면 이런게 로그인 창이 뜬다.

 

녹스에서 렉이 너무 심한데 눕혓다가 다시 세우면된다.

 

근데 나는 로그인 횟수 시도가 많아서 차단됌

 

어쨋든 이걸로 로그인 되는 걸 확인했다

 

이제 페이스북 id를 가져와서 쓰면 된다.

 

 

반응형