# 内容审核最佳实践 (/zh-CN/realtime-media/content-moderation/build/best-practices)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

本文介绍内容审核在接入、透传字段设计、回调联调和问题排查过程中的推荐做法。

## 接入前检查 [#接入前检查]

在开始联调前，建议先确认以下内容：

- 控制台已开通对应的音频审核或视频审核能力。
- 已准备可用的回调地址，并完成基础连通性检查。
- 如通过 RTC SDK 启动审核，已准备可用的 RTC Token，且当前使用 AccessToken2。
- 已确认套餐包或测试期状态，避免因计费状态导致审核能力不可用。

## 视频审核接入规范 [#视频审核接入规范]

### 接口调用方式 [#接口调用方式]

- 视频审核应通过 `enableContentInspect(true, config)` 开启，不应通过自定义 `setParameters` 拼接审核参数。
- 审核模块类型应设置为图片审核类型。
- 截图间隔建议设置为 `10` 秒。实际取值可根据业务场景调整。

### `extraInfo` 字段要求 [#extrainfo-字段要求]

`extraInfo` 按 SDK 定义为字符串类型。传递结构化上下文时，应先序列化为 JSON 字符串后再赋值。推荐至少包含以下字段：

- `cname`
- `uid`
- `clientInfo`

示例：

```json
{"cname":"428743","uid":"996","clientInfo":"dic"}
```

不应直接将 `object`、`NSDictionary` 或其他对象类型传入审核扩展字段。直接透传对象可能导致下游解析不一致，或引发回调字段异常。

## 回调联调检查项 [#回调联调检查项]

联调审核回调时，应至少检查以下内容：

- 已按审核厂商文档完成验签。
- 审核结果已成功回调到你的 webhook 或业务回调地址。
- 回调中包含 `signature`、`callbackData` 和 `secretId` 等基础字段。
- `callbackData.antispam` 中包含 `taskId`、`dataId`、`status`、`suggestion` 和 `labels` 等关键审核结果字段。
- 回调中的业务关联字段，例如 `name` 或透传字段，可以准确对应 `cname`、`uid` 或你的自定义上下文。

## 音频审核联调检查项 [#音频审核联调检查项]

联调音频审核时，应至少检查以下内容：

- 回调已成功到达 `callbackUrl` 指定的业务地址。
- 回调中的 `dataId`、`roomNo`、`callback` 或 `extension` 可以准确对应你的房间、用户和业务记录。
- 回调服务已做好幂等处理，避免重复通知导致重复处罚。

## 常见问题排查顺序 [#常见问题排查顺序]

### `app_token_invalid` [#app_token_invalid]

重点检查以下内容是否一致且未过期：

- Token
- App ID
- 频道名
- `uid`

### RTC 正常但没有审核结果 [#rtc-正常但没有审核结果]

重点检查以下内容：

- 控制台能力是否已开通。
- 配置是否已生效。
- 套餐包是否处于有效状态。

### 审核有结果但业务侧收不到回调 [#审核有结果但业务侧收不到回调]

重点检查以下内容：

- 回调地址配置是否正确。
- 服务端连通性是否正常。
- webhook 处理逻辑是否已正确部署。
