跳转到主要内容

会员转换

将游客账号关联为社交账号。

URL确认

此API使用 service-account.playnanoo.com 域名。

API信息

  • URL: https://service-account.playnanoo.com/api/v20240401/social/change
  • Method: PUT
  • 需要认证: 是

请求参数

参数类型必填说明
account_tokenstring必填社交账号Token
account_typestring必填社交账号类型 (例如: "google", "facebook", "apple")
platformstring必填平台 (例如: "aos", "ios")
device_idstring必填设备唯一ID
device_modelstring必填设备型号
device_osstring必填设备OS
device_languagestring必填设备语言 (例如: "KO", "EN")

响应数据

Res类

字段类型说明
TokenFSerializeTokenDataToken信息
PlayerFSerializePlayerData玩家信息

FSerializeTokenData 结构

字段类型说明
AccessTokenFString访问Token
RefreshTokenFString刷新Token

FSerializePlayerData 结构

字段类型说明
UserUniqueIDFString用户唯一ID
OpenIDFStringOpen ID
NicknameFString昵称
LinkedIDFString关联ID
LinkedTypeFString关联类型
PurchaseCountint32购买次数
PurchaseCurrencyCodeFString购买货币代码
PurchaseTotalPricedouble总购买金额
PurchaseVoidedCountint32退款次数
PurchaseVoidedCurrencyCodeFString退款货币代码
PurchaseVoidedTotalPricedouble总退款金额
CountryFString国家
TimezoneFString时区
Offsetint32时间偏移
JoinPeriodint32注册时长

代码示例

void UMyGame::ChangeSocialAccount(const FString& AccessToken, const FString& AccountToken, const FString& AccountType)
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("account_token"), AccountToken);
Body->SetStringField(TEXT("account_type"), AccountType);

// JSON 문자열 변환
FString JsonBody = FPlayNANOOHelper::ToJsonString(Body);

// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-account.playnanoo.com/api/v20240401/social/change"));
Request->SetVerb(TEXT("PUT"));
FPlayNANOOHelper::SetCommonHeaders(Request, true); // 인증 토큰 포함
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 NewAccessToken;
(*TokenObject)->TryGetStringField(TEXT("AccessToken"), NewAccessToken);
UE_LOG(LogTemp, Log, TEXT("소셜 계정 연동 성공"));
}

// 플레이어 정보
const TSharedPtr<FJsonObject>* PlayerObject;
if (JsonObject->TryGetObjectField(TEXT("Player"), PlayerObject))
{
FString LinkedType;
(*PlayerObject)->TryGetStringField(TEXT("LinkedType"), LinkedType);
UE_LOG(LogTemp, Log, TEXT("LinkedType: %s"), *LinkedType);
}
}
}
});

Request->ProcessRequest();
}
社交账号类型

支持的account_type: "google"、"facebook"、"apple"