본문으로 건너뛰기

서버 시간 조회

서버의 현재 시간을 조회합니다.

URL 확인

이 API는 api.playnanoo.com 도메인을 사용합니다.

API 정보

  • URL: https://api.playnanoo.com/server_time/call
  • Method: POST
  • 인증 필요: 예

요청 파라미터

파라미터타입필수설명
udidstring필수디바이스 ID

응답 데이터

필드타입설명
codenumber응답 코드
messagestring응답 메시지
valueobject서버 시간 정보

value 객체

필드타입설명
timezonestring타임존
timestampnumberUnix 타임스탬프
ISO_8601_datestringISO 8601 형식 날짜
datestring날짜 (YYYY-MM-DD)
yearstring연도
monthstring
daystring
hourstring
minutestring
secondstring

코드 예제

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();
}
서버 시간 활용

서버 시간은 게임 내 이벤트 시작/종료 시간 확인, 타임스탬프 검증 등에 활용할 수 있습니다. 클라이언트 시간 조작을 방지하기 위해 중요한 시간 체크는 항상 서버 시간을 기준으로 해야 합니다.

분당 요청 제한

디바이스 및 앱별로 분당 요청 횟수가 제한될 수 있습니다. 과도한 호출을 피하고 필요한 경우에만 서버 시간을 조회하세요.