계정 등록
이메일 계정으로 회원가입합니다.
API 정보
- URL:
https://service-account.playnanoo.com/api/v20240101/email/signup - Method:
PUT - 인증 필요: 아니오
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| linked_id | string | 필수 | 이메일 주소 |
| linked_password | string | 필수 | 비밀번호 |
| platform | string | 필수 | 플랫폼 (예: "aos", "ios") |
| device_id | string | 필수 | 기기 고유 ID |
| device_model | string | 필수 | 기기 모델명 |
| device_name | string | 필수 | 기기 이름 |
| device_os | string | 필수 | 기기 OS |
| device_language | string | 필수 | 기기 언어 (예: "KO", "EN") |
응답 데이터
Token 정보
AccessToken: 액세스 토큰RefreshToken: 리프레시 토큰
Player 정보
UserUniqueID: 사용자 고유 IDOpenID: 오픈 IDNickname: 닉네임LinkedID: 연동 IDLinkedType: 연동 타입PurchaseCount: 구매 횟수PurchaseCurrencyCode: 구매 통화 코드PurchaseTotalPrice: 총 구매 금액Country: 국가Timezone: 타임존Offset: 시간 오프셋JoinPeriod: 가입 기간
코드 예제
void UMyGame::EmailSignup(const FString& Email, const FString& Password)
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("linked_id"), Email);
Body->SetStringField(TEXT("linked_password"), Password);
Body->SetStringField(TEXT("device_name"), FPlatformMisc::GetDeviceMakeAndModel());
// JSON 문자열 변환
FString JsonBody = FPlayNANOOHelper::ToJsonString(Body);
// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-account.playnanoo.com/api/v20240101/email/signup"));
Request->SetVerb(TEXT("PUT"));
FPlayNANOOHelper::SetCommonHeaders(Request, false); // 인증 토큰 불필요
Request->SetContentAsString(JsonBody);
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))
{
// 토큰 정보
const TSharedPtr<FJsonObject>* TokenObject;
if (JsonObject->TryGetObjectField(TEXT("Token"), TokenObject))
{
FString AccessToken, RefreshToken;
(*TokenObject)->TryGetStringField(TEXT("AccessToken"), AccessToken);
(*TokenObject)->TryGetStringField(TEXT("RefreshToken"), RefreshToken);
UE_LOG(LogTemp, Log, TEXT("회원가입 성공"));
}
// 플레이어 정보
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("UserUniqueID: %s"), *UserUniqueID);
}
}
}
});
Request->ProcessRequest();
}
기기 정보
Unreal Engine의 FPlatformMisc 클래스를 사용하여 기기 정보를 얻을 수 있습니다.