계정 등록 및 인증
페이스북 계정을 활용하여 회원 가입 및 인증을 합니다. iOS, 안드로이드 통합 사용 가능합니다.
URL 확인
이 API는 service-account.playnanoo.com 도메인을 사용합니다.
API 정보
- URL:
https://service-account.playnanoo.com/api/v20240101/social/signin - Method:
PUT - 인증 필요: 아니오
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| account_token | string | 필수 | 소셜 로그인 토큰 (Facebook Access Token) |
| account_type | string | 필수 | 계정 타입 (PN_ACCOUNT_FACEBOOK = "FACEBOOK") |
응답 데이터
Res 구조체
| 필드 | 타입 | 설명 |
|---|---|---|
| Token | FSerializeTokenData | 토큰 정보 |
| Player | FSerializePlayerData | 플레이어 정보 |
FSerializeTokenData 구조
| 필드 | 타입 | 설명 |
|---|---|---|
| AccessToken | FString | 액세스 토큰 |
| RefreshToken | FString | 리프레시 토큰 |
FSerializePlayerData 구조
| 필드 | 타입 | 설명 |
|---|---|---|
| UserUniqueID | FString | 사용자 고유 ID |
| OpenID | FString | 오픈 ID |
| Nickname | FString | 닉네임 |
| LinkedID | FString | 연동 ID |
| LinkedType | FString | 연동 타입 |
| PurchaseCount | int32 | 구매 횟수 |
| PurchaseCurrencyCode | FString | 구매 통화 코드 |
| PurchaseTotalPrice | double | 총 구매 금액 |
| PurchaseVoidedCount | int32 | 환불 횟수 |
| PurchaseVoidedCurrencyCode | FString | 환불 통화 코드 |
| PurchaseVoidedTotalPrice | double | 총 환불 금액 |
| Country | FString | 국가 |
| Timezone | FString | 타임존 |
| Offset | int32 | 시간 오프셋 |
| JoinPeriod | int32 | 가입 기간 |
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"
}
참조
- 계정 타입 값:
PN_ACCOUNT_FACEBOOK = "FACEBOOK"- 자세한 정보는 기타 > 계정 타입 정보 참조 - 회원 전환: 비회원 연동 > 회원 전환 문서 참조
Online Subsystem Facebook
Unreal Engine의 Online Subsystem Facebook을 사용하려면 프로젝트 설정에서 활성화하고 Facebook App ID를 설정해야 합니다. 자세한 내용은 Unreal Engine 공식 문서를 참조하세요.