Webhooksイベントタイプ

Screentime.OverrideResult

スクリーンタイムの延長リクエストが解決したときに発行されます。保護者が承認した、保護者が拒否した、または回答がないまま有効期限が切れた、のいずれかです。これは/screentime/request-overrideの呼び出しに対する回答であり、プロダクトが結果を知る唯一の手段です。

エンドポイントをこのイベントに購読させてください

k-IDはScreentime.OverrideResultを、購読しているエンドポイントにのみ配信します。それ以外には配信の試行もエラーもなく破棄されます。プロダクトのDeveloper Settingsページで、エンドポイントに対して選択してください。始める前にを参照してください。

1件のリクエストに対してScreentime.OverrideResultはちょうど1回発行されます。data.idでリクエストと対応付けてください。これは/screentime/request-overrideが返したidです。

フィールド

フィールドタイプ必須説明
eventTypestringはい常に"Screentime.OverrideResult"
dataobjectはい延長結果のデータ
data.idstring (UUID)はい延長リクエストのID。/screentime/request-overrideが返したidと一致します
data.sessionIdstring (UUID)はい延長がリクエストされたセッションID
data.productIdnumberはいプロダクトID
data.statusstringはいgranted、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.timeLimitTodayMinutesとstate.state.timeRemainingTodayMinutesを読んでください。

延長が承認されると本日の制限が引き上げられるため、以降のイベントなしにaccess.allowedがtrueに戻ることがあります。プレイヤーが追加の時間を使い切って引き上げ後の制限に達しても、2度目のScreentime.LimitReachedは発行されません。このイベントはプレイヤーごとに1日最大1回しか発行されないためです。

On this page