본문으로 건너뛰기

Screentime.OverrideResult

스크린 타임 예외 요청이 해결될 때 발생합니다. 부모가 승인했거나, 부모가 거부했거나, 답변 없이 만료된 경우입니다. 이것은 /screentime/request-override 호출에 대한 답변이며 제품이 결과를 알 수 있는 유일한 방법입니다.

엔드포인트를 이 이벤트에 구독하세요

k-ID는 Screentime.OverrideResult를 구독한 엔드포인트에만 전달하고, 나머지에는 전달 시도나 오류 없이 버립니다. 제품의 Developer Settings 페이지에서 엔드포인트에 대해 선택하세요. 시작하기 전에를 참조하세요.

하나의 요청에 대해 Screentime.OverrideResult는 정확히 한 번 발생합니다. /screentime/request-override가 반환한 id와 같은 값인 data.id로 요청과 연결하세요.

필드

필드유형필수설명
eventTypestring항상 "Screentime.OverrideResult"
dataobject예외 결과 데이터
data.idstring (UUID)예외 요청 ID로, /screentime/request-override가 반환한 id와 일치합니다
data.sessionIdstring (UUID)예외가 요청된 세션 ID
data.productIdnumber제품 ID
data.statusstringgranted, denied 또는 expired
data.stateobject결정 후의 스크린 타임 상태로, GET /screentime/get-state 응답과 같은 형태입니다

예시

{
"eventType": "Screentime.OverrideResult",
"data": {
"id": "2e9b7c41-8d6a-4f23-bc15-3a8e9d0f1b62",
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"status": "granted",
"state": {
"enabled": true,
"access": {
"allowed": true
},
"state": {
"timeUsedTodayMinutes": 120,
"continuousUsageMinutes": 45,
"timeLimitTodayMinutes": 150,
"timeRemainingTodayMinutes": 30,
"dayResetsAt": "2026-06-25T00:00:00Z"
},
"schedule": {
"timezone": "UTC",
"breakReminderIntervalMinutes": 45,
"dailyLimits": [
{ "day": "mon", "limitMinutes": 120 },
{ "day": "sat", "limitMinutes": 180 }
],
"quietHours": [
{
"name": "Bedtime",
"days": ["mon", "tue", "wed", "thu", "fri"],
"start": "21:00",
"end": "07:00"
}
]
}
}
}
}

거부된 결과도 같은 형태이며 규칙은 변경되지 않습니다.

{
"eventType": "Screentime.OverrideResult",
"data": {
"id": "2e9b7c41-8d6a-4f23-bc15-3a8e9d0f1b62",
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"status": "denied",
"state": {
"enabled": true,
"access": {
"allowed": false,
"details": {
"reason": "limit_reached",
"resumesAt": "2026-06-25T00:00:00Z"
}
},
"state": {
"timeUsedTodayMinutes": 120,
"continuousUsageMinutes": 45,
"timeLimitTodayMinutes": 120,
"timeRemainingTodayMinutes": 0,
"dayResetsAt": "2026-06-25T00:00:00Z"
}
}
}
}

상태

status의미
granted부모가 요청을 승인했습니다. 오늘의 허용 시간에 추가 분이 더해졌습니다.
denied부모가 요청을 거부했습니다. 오늘의 규칙은 변경되지 않았습니다.
expired요청 후 24시간 안에 부모가 답변하지 않았습니다. 오늘의 규칙은 변경되지 않았습니다.

expired는 오류가 아니며 전달 실패도 아닙니다. 만료된 후 플레이어는 새 요청을 보낼 수 있습니다.

상태가 페이로드에 담겨 있습니다

data.state에는 결정이 적용된 후 계산된, GET /screentime/get-state 응답과 같은 형태의 내용이 담깁니다. 플레이어가 다시 플레이할 수 있는지 확인하기 위해 추가 조회는 필요하지 않습니다. state.access.allowed를 읽고, 승인된 경우에는 올라간 state.state.timeLimitTodayMinutesstate.state.timeRemainingTodayMinutes를 읽으세요.

예외가 승인되면 오늘의 한도가 올라가므로 추가 이벤트 없이 access.allowed가 다시 true가 될 수 있습니다. 플레이어가 추가 시간을 모두 쓰고 올라간 한도에 도달해도 두 번째 Screentime.LimitReached는 발생하지 않습니다. 이 이벤트는 플레이어별로 하루에 최대 한 번만 발생하기 때문입니다.