Skip to main content

Query Player

Queries a specific player's leaderboard record.

URL Confirmation

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

API Information

  • URL: https://service-api.playnanoo.com/leaderboard/v20240301/show
  • Method: PUT
  • Authentication Required: Yes

Request Parameters

ParameterTypeRequiredDescription
uidstringRequiredTable code
record_idstringRequiredRecord ID (player identifier)

Response Data

FieldTypeDescription
RankintPlayer's rank
RotationCountintCurrent season number
RecordIdstringRecord ID
ScoreintScore
ExtraDatastringExtra data (JSON string)

Code Example

void UMyGame::ShowPlayerRecord(const FString& TableCode, const FString& RecordId)
{
// 요청 데이터 생성
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("uid"), TableCode);
Body->SetStringField(TEXT("record_id"), RecordId);

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

// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-api.playnanoo.com/leaderboard/v20240301/show"));
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))
{
int32 Rank = JsonObject->GetIntegerField(TEXT("Rank"));
int32 Score = JsonObject->GetIntegerField(TEXT("Score"));
int32 RotationCount = JsonObject->GetIntegerField(TEXT("RotationCount"));
FString ExtraData = JsonObject->GetStringField(TEXT("ExtraData"));

UE_LOG(LogTemp, Log, TEXT("순위: %d, 점수: %d, 시즌: %d"), Rank, Score, RotationCount);
}
}
});

Request->ProcessRequest();
}
Record Query

This API queries a specific player's record from the current season. To query records from previous seasons, use the previous season query API.

Extra Data Parsing

ExtraData is returned in JSON string format. You can use FJsonSerializer to convert it to an object.