Social Login
Log in with social accounts (Google, Facebook, Apple, etc.).
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| request_uuid | FString | Required | Request unique ID (UUID) |
| account_type | FString | Required | Social account type (e.g., "google", "facebook", "apple") |
| account_token | FString | Required | Social account access token |
| platform | FString | Required | Platform (e.g., "aos", "ios") - Auto-included |
| device_id | FString | Required | Device unique ID - Auto-included |
| device_model | FString | Required | Device model name - Auto-included |
| device_os | FString | Required | Device OS - Auto-included |
| device_language | FString | Required | Device language (e.g., "KO", "EN") - Auto-included |
Auto-included Device Information
Using FPlayNANOOHelper::CreateRequestBody() automatically includes platform, device_id, device_model, device_os, and device_language.
Response Data
FSocialSigninResponse
| Field | Type | Description |
|---|---|---|
| Token | FTokenData | Token information |
| Player | FPlayerData | Player information |
FTokenData
| Field | Type | Description |
|---|---|---|
| AccessToken | FString | Access token |
| RefreshToken | FString | Refresh token |
FPlayerData
| Field | Type | Description |
|---|---|---|
| UserUniqueID | FString | User unique ID |
| OpenID | FString | Open ID |
| Nickname | FString | Nickname |
| LinkedID | FString | Linked ID |
| LinkedType | FString | Linked type |
| PurchaseCount | int32 | Purchase count |
| PurchaseCurrencyCode | FString | Purchase currency code |
| PurchaseTotalPrice | double | Total purchase amount |
| Country | FString | Country |
| Timezone | FString | Timezone |
| Offset | int32 | Time offset |
| JoinPeriod | int32 | Join period |
Code Example
Google Login
#include "PlayNANOOHelper.h"
#include "HttpModule.h"
#include "Interfaces/IHttpRequest.h"
#include "Interfaces/IHttpResponse.h"
void UMyGame::GoogleSignin(const FString& GoogleAccessToken)
{
FString RequestUUID = FGuid::NewGuid().ToString();
// Create request data (device info is automatically included)
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("request_uuid"), RequestUUID);
Body->SetStringField(TEXT("account_type"), TEXT("google"));
Body->SetStringField(TEXT("account_token"), GoogleAccessToken);
// Convert to JSON string
FString JsonBody;
TSharedRef<TJsonWriter<>> Writer = TJsonWriterFactory<>::Create(&JsonBody);
FJsonSerializer::Serialize(Body.ToSharedRef(), Writer);
// HTTP request
TSharedRef<IHttpRequest, ESPMode::ThreadSafe> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-account.playnanoo.com/api/v20240101/social/signin"));
Request->SetVerb(TEXT("PUT"));
Request->SetContentAsString(JsonBody);
// Set common headers (no authentication token needed for login API)
FPlayNANOOHelper::SetCommonHeaders(Request, false);
Request->OnProcessRequestComplete().BindLambda(
[](FHttpRequestPtr Req, FHttpResponsePtr Res, bool bSuccess)
{
if (bSuccess && Res.IsValid())
{
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(Res->GetContentAsString());
if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
// Token information
const TSharedPtr<FJsonObject>* TokenObject;
if (JsonObject->TryGetObjectField(TEXT("Token"), TokenObject))
{
FString AccessToken;
(*TokenObject)->TryGetStringField(TEXT("AccessToken"), AccessToken);
UE_LOG(LogTemp, Log, TEXT("Google login successful"));
}
// Player information
const TSharedPtr<FJsonObject>* PlayerObject;
if (JsonObject->TryGetObjectField(TEXT("Player"), PlayerObject))
{
FString UserUniqueID, Nickname;
(*PlayerObject)->TryGetStringField(TEXT("UserUniqueID"), UserUniqueID);
(*PlayerObject)->TryGetStringField(TEXT("Nickname"), Nickname);
UE_LOG(LogTemp, Log, TEXT("Nickname: %s"), *Nickname);
}
}
}
});
Request->ProcessRequest();
}
Supported Social Account Types
| account_type | Description | Required Token |
|---|---|---|
| Google Account | Google OAuth2 Access Token | |
| Facebook Account | Facebook Access Token | |
| apple | Apple Account | Apple ID Token |
Social Login SDKs
To implement each social platform login, you need the corresponding platform's SDK or plugin.
request_uuid
request_uuid is a UUID to uniquely identify each login request. It can be generated using FGuid::NewGuid().ToString().