Show Menu
主题×

验证事件请求

可在后端使用 JSON 架构对每个事件类型的 JSON 请求正文进行验证。当 API 调用验证失败时,HTTP 响应正文将填充错误消息。
可在此处公开访问每个事件类型的 JSON 验证架构:
{uri}/api/v1/schemas/{eventType}
(例如,
{uri}/api/v1/schemas/sessionEnd
)。这些 JSON 验证架构是绝对的权威,其可为每个事件类型确定正确的请求正文参数。
例如,对
sessionStart
验证架构的请求响应类似于此示例(为方便阅读,此处格式略有改动):
HTTP/1.1 200 OK Server: nginx/1.13.5 Date: Thu, 18 Jan 2018 15:44:50 GMT Content-Type: application/json Content-Length: 2716 Connection: keep-alive { "$schema":"https://json-schema.org/draft-04/schema#", "id":"https://alpha.hb-api.omtrdc.net/api/v1/schemas/sessionStart", "definitions": { "playerTime": { "type":"object","properties": { "playhead": {"type":"number"}, "ts": {"type":"integer"} }, "required":["playhead","ts"], "additionalProperties":false }, "eventType": { "type":"string", "enum":[ "sessionStart", "play", "ping", "bufferStart", "pauseStart", "sessionComplete", "bitrateChange", "error", "adBreakStart", "adBreakComplete", "adStart", "adComplete", "adSkip", "sessionEnd" ] }, "qoeData": { "type":"object","properties": { "media.qoe.bitrate": {"type":"integer"}, "media.qoe.droppedFrames": {"type":"integer"}, "media.qoe.framesPerSecond": {"type":"integer"}, "media.qoe.timeToStart": {"type":"integer"} }, "required":[], "additionalProperties":false }, "customMetadata": { "type":"object", "patternProperties": { "^[a-zA-Z0-9_\\.]+$": {"type":"string"} }, "additionalProperties":false }, "sessionStart": { "properties": { "eventType": {"type":"string","enum":["sessionStart"]}, "playerTime": {"$ref":"#/definitions/playerTime"}, "params": {"type":"object", "properties": { "appInstallationId": {"type":"string"}, "analytics.trackingServer": {"type":"string"}, "analytics.reportSuite": {"type":"string"}, <...> "visitor.marketingCloudOrgId"], "additionalProperties":false }, "customMetadata": {"$ref":"#/definitions/customMetadata"}, "qoeData": {"$ref":"#/definitions/qoeData"} }, "required":["eventType","playerTime","params"], "additionalProperties":false } }, "type":"object","$ref":"#/definitions/sessionStart" } }
无法进行会话级别验证,因为会话上下文在收集层中不可用。