Skip to main content

Account Registration and Authentication

Sign up and authenticate using Facebook accounts. Available for both iOS and Android.

URL Confirmation

This API uses the service-account.playnanoo.com domain.

API Information

  • URL: https://service-account.playnanoo.com/api/v20240101/social/signin
  • Method: PUT
  • Authentication Required: No

Request Parameters

ParameterTypeRequiredDescription
account_tokenstringRequiredSocial login token (Facebook Access Token)
account_typestringRequiredAccount type (PN_ACCOUNT_FACEBOOK = "FACEBOOK")

Response Data

Res Structure

FieldTypeDescription
TokenFSerializeTokenDataToken information
PlayerFSerializePlayerDataPlayer information

FSerializeTokenData Structure

FieldTypeDescription
AccessTokenFStringAccess token
RefreshTokenFStringRefresh token

FSerializePlayerData Structure

FieldTypeDescription
UserUniqueIDFStringUser unique ID
OpenIDFStringOpen ID
NicknameFStringNickname
LinkedIDFStringLinked ID
LinkedTypeFStringLinked type
PurchaseCountint32Purchase count
PurchaseCurrencyCodeFStringPurchase currency code
PurchaseTotalPricedoubleTotal purchase amount
PurchaseVoidedCountint32Refund count
PurchaseVoidedCurrencyCodeFStringRefund currency code
PurchaseVoidedTotalPricedoubleTotal refund amount
CountryFStringCountry
TimezoneFStringTimezone
Offsetint32Time offset
JoinPeriodint32Join period

Unreal C++ Implementation

// 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)
{
// Get 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 authentication failed: %s"), *Error);
}
}
);

Identity->AddOnLoginCompleteDelegate_Handle(0, LoginDelegate);

// Set requested permissions
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)
{
// Call 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);
}

Usage

1. Start Facebook Login

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

Call the PlayNANOO API with the token received in the SocialSignin method after authentication:

New Login (SocialSignIn)

void UYourClass::SocialSignIn(const FString& Token, const FString& AccountType)
{
// First login with Facebook account
// AccountType: "FACEBOOK"
}
Reference
Online Subsystem Facebook

To use Unreal Engine's Online Subsystem Facebook, you must enable it in project settings and configure the Facebook App ID. Refer to the Unreal Engine official documentation for more details.