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
| Parameter | Type | Required | Description |
|---|---|---|---|
| udid | string | Required | Device ID |
Response Data
| Field | Type | Description |
|---|---|---|
| code | number | Response code |
| message | string | Response message |
| value | object | Server time information |
value Object
| Field | Type | Description |
|---|---|---|
| timezone | string | Timezone |
| timestamp | number | Unix timestamp |
| ISO_8601_date | string | ISO 8601 format date |
| date | string | Date (YYYY-MM-DD) |
| year | string | Year |
| month | string | Month |
| day | string | Day |
| hour | string | Hour |
| minute | string | Minute |
| second | string | Second |
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.