서버 시간 조회
서버의 현재 시간을 조회합니다.
URL 확인
이 API는 api.playnanoo.com 도메인을 사용합니다.
API 정보
- URL:
https://api.playnanoo.com/server_time/call - Method:
POST - 인증 필요: 예
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| udid | string | 필수 | 디바이스 ID |
응답 데이터
| 필드 | 타입 | 설명 |
|---|---|---|
| code | number | 응답 코드 |
| message | string | 응답 메시지 |
| value | object | 서버 시간 정보 |
value 객체
| 필드 | 타입 | 설명 |
|---|---|---|
| timezone | string | 타임존 |
| timestamp | number | Unix 타임스탬프 |
| ISO_8601_date | string | ISO 8601 형식 날짜 |
| date | string | 날짜 (YYYY-MM-DD) |
| year | string | 연도 |
| month | string | 월 |
| day | string | 일 |
| hour | string | 시 |
| minute | string | 분 |
| second | string | 초 |
코드 예제
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();
}
서버 시간 활용
서버 시간은 게임 내 이벤트 시작/종료 시간 확인, 타임스탬프 검증 등에 활용할 수 있습니다. 클라이언트 시간 조작을 방지하기 위해 중요한 시간 체크는 항상 서버 시간을 기준으로 해야 합니다.
분당 요청 제한
디바이스 및 앱별로 분당 요청 횟수가 제한될 수 있습니다. 과도한 호출을 피하고 필요한 경우에만 서버 시간을 조회하세요.