본문으로 건너뛰기

계정 등록 및 인증

페이스북 계정을 활용하여 회원 가입 및 인증을 합니다. iOS, 안드로이드 통합 사용 가능합니다.

URL 확인

이 API는 service-account.playnanoo.com 도메인을 사용합니다.

API 정보

  • URL: https://service-account.playnanoo.com/api/v20240101/social/signin
  • Method: PUT
  • 인증 필요: 아니오

요청 파라미터

파라미터타입필수설명
account_tokenstring필수소셜 로그인 토큰 (Facebook Access Token)
account_typestring필수계정 타입 (PN_ACCOUNT_FACEBOOK = "FACEBOOK")

응답 데이터

Res 구조체

필드타입설명
TokenFSerializeTokenData토큰 정보
PlayerFSerializePlayerData플레이어 정보

FSerializeTokenData 구조

필드타입설명
AccessTokenFString액세스 토큰
RefreshTokenFString리프레시 토큰

FSerializePlayerData 구조

필드타입설명
UserUniqueIDFString사용자 고유 ID
OpenIDFString오픈 ID
NicknameFString닉네임
LinkedIDFString연동 ID
LinkedTypeFString연동 타입
PurchaseCountint32구매 횟수
PurchaseCurrencyCodeFString구매 통화 코드
PurchaseTotalPricedouble총 구매 금액
PurchaseVoidedCountint32환불 횟수
PurchaseVoidedCurrencyCodeFString환불 통화 코드
PurchaseVoidedTotalPricedouble총 환불 금액
CountryFString국가
TimezoneFString타임존
Offsetint32시간 오프셋
JoinPeriodint32가입 기간

Unreal C++ 구현

// FacebookSignInExample.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "FacebookSignInExample.generated.h"

UCLASS()
class YOURPROJECT_API AFacebookSignInExample : public AActor
{
GENERATED_BODY()

public:
AFacebookSignInExample();

UFUNCTION(BlueprintCallable, Category = "PlayNANOO|Account")
void FacebookSignIn();

private:
void OnFBInitComplete();
void OnFBHideUnity(bool bIsShow);
void FacebookAuthCallback(bool bWasSuccessful, const FString& AccessToken);
void SocialSignin(const FString& Token);
};

// FacebookSignInExample.cpp
#include "FacebookSignInExample.h"
#include "OnlineSubsystem.h"
#include "OnlineSubsystemFacebook.h"
#include "Interfaces/OnlineIdentityInterface.h"
#include "Interfaces/OnlineExternalUIInterface.h"

AFacebookSignInExample::AFacebookSignInExample()
{
PrimaryActorTick.bCanEverTick = false;
}

void AFacebookSignInExample::FacebookSignIn()
{
IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get(FACEBOOK_SUBSYSTEM);
if (OnlineSubsystem)
{
IOnlineIdentityPtr Identity = OnlineSubsystem->GetIdentityInterface();
if (Identity.IsValid())
{
FOnLoginCompleteDelegate LoginDelegate = FOnLoginCompleteDelegate::CreateLambda(
[this](int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& Error)
{
if (bWasSuccessful)
{
// Facebook Access Token 획득
IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get(FACEBOOK_SUBSYSTEM);
if (OnlineSubsystem)
{
IOnlineIdentityPtr Identity = OnlineSubsystem->GetIdentityInterface();
if (Identity.IsValid())
{
FString AccessToken = Identity->GetAuthToken(LocalUserNum);
FacebookAuthCallback(true, AccessToken);
}
}
}
else
{
FacebookAuthCallback(false, FString());
UE_LOG(LogTemp, Error, TEXT("Facebook 인증 실패: %s"), *Error);
}
}
);

Identity->AddOnLoginCompleteDelegate_Handle(0, LoginDelegate);

// 요청할 권한 설정
FOnlineAccountCredentials Credentials;
Credentials.Type = TEXT("facebook");
Credentials.Id = TEXT("public_profile,email");

Identity->Login(0, Credentials);
}
}
}

void AFacebookSignInExample::FacebookAuthCallback(bool bWasSuccessful, const FString& AccessToken)
{
if (bWasSuccessful)
{
// SocialSignin API 호출
SocialSignin(AccessToken);
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Login Cancel"));
}
}

void AFacebookSignInExample::SocialSignin(const FString& Token)
{
// SocialSignIn(Token, TEXT("FACEBOOK"));
UE_LOG(LogTemp, Log, TEXT("Facebook Access Token: %s"), *Token);
}

사용 방법

1. Facebook 로그인 시작

void UYourClass::StartFacebookSignIn()
{
AFacebookSignInExample* FacebookSignIn = GetWorld()->SpawnActor<AFacebookSignInExample>();
if (FacebookSignIn)
{
FacebookSignIn->FacebookSignIn();
}
}

2. 토큰으로 계정 연동

인증 완료 후 SocialSignin 메소드에서 받은 token으로 PlayNANOO API를 호출합니다:

신규 로그인 (SocialSignIn)

void UYourClass::SocialSignIn(const FString& Token, const FString& AccountType)
{
// Facebook 계정으로 처음 로그인
// AccountType: "FACEBOOK"
}
참조
Online Subsystem Facebook

Unreal Engine의 Online Subsystem Facebook을 사용하려면 프로젝트 설정에서 활성화하고 Facebook App ID를 설정해야 합니다. 자세한 내용은 Unreal Engine 공식 문서를 참조하세요.