Skip to main content

Get Server Time

Retrieves the current server time.

URL Confirmation

This API uses the api.playnanoo.com domain.

API Information

  • URL: https://api.playnanoo.com/server_time/call
  • Method: POST
  • Authentication Required: Yes

Request Parameters

ParameterTypeRequiredDescription
udidstringRequiredDevice ID

Response Data

FieldTypeDescription
codenumberResponse code
messagestringResponse message
valueobjectServer time information

value Object

FieldTypeDescription
timezonestringTimezone
timestampnumberUnix timestamp
ISO_8601_datestringISO 8601 format date
datestringDate (YYYY-MM-DD)
yearstringYear
monthstringMonth
daystringDay
hourstringHour
minutestringMinute
secondstringSecond

Code Example

void UMyGame::GetServerTime()
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("udid"), DeviceId);

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

// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://api.playnanoo.com/server_time/call"));
Request->SetVerb(TEXT("POST"));
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>* ValueObject;
if (JsonObject->TryGetObjectField(TEXT("value"), ValueObject))
{
FString Date = (*ValueObject)->GetStringField(TEXT("date"));
FString Hour = (*ValueObject)->GetStringField(TEXT("hour"));
FString Minute = (*ValueObject)->GetStringField(TEXT("minute"));
FString Second = (*ValueObject)->GetStringField(TEXT("second"));
UE_LOG(LogTemp, Log, TEXT("서버 시간: %s %s:%s:%s"), *Date, *Hour, *Minute, *Second);
}
}
}
});

Request->ProcessRequest();
}
Server Time Usage

Server time can be used to check game event start/end times, validate timestamps, etc. To prevent client-side time manipulation, important time checks should always be based on server time.

Request Rate Limiting

Request frequency may be limited per device and per app. Avoid excessive calls and only query server time when necessary.