快速开始
提交任务时,在请求体里加一个webhook 字段:
你的地址 + /callback 发一个 POST 请求。
视频、音频等其它异步任务接口同理,都是在提交体里加
webhook 字段。地址规则
你填的webhook 是基础地址(base),我们会自动在后面拼 /callback:
你填的 webhook | 我们实际 POST 到 |
|---|---|
https://your-server.com | https://your-server.com/callback |
https://your-server.com/api | https://your-server.com/api/callback |
https://your-server.com/api/ | https://your-server.com/api/callback |
POST .../callback 的接口。
你会收到什么
推送内容和「获取任务状态」接口返回的完全一致——你用同一套解析逻辑处理即可。视频任务结果在
result.videos,音频在 result.audios。重试与去重(重要)
- 重试:如果你的服务端没在约 10 秒内返回
2xx,或返回了5xx,我们会自动重试,最多 3 次,间隔约 10 秒、30 秒、60 秒。3 次都失败就放弃(约 2 分钟内结束)。 - 不重试的情况:你的接口返回
4xx(视为地址 / 请求有问题),我们直接放弃,不重试。 - 去重:正常情况下一个任务只推一次。但在极端情况下(如我们这边发送后、确认前发生重启)你可能收到重复推送。请务必按
id(task_id)做幂等去重,避免重复处理。
对回调地址的要求
为安全起见,回调地址必须满足:| 要求 | 说明 |
|---|---|
| 公网可访问 | 不能是内网 / 本地地址(如 127.0.0.1、10.x、192.168.x 等会被拒绝) |
| 协议 | http 或 https(推荐 https) |
| 端口 | 用标准端口(80 / 443),非标端口可能被拦截 |
| 域名 | 不能指向我们自己的服务域名 |
常见问题
提交了带 webhook 的任务,但没收到推送?
提交了带 webhook 的任务,但没收到推送?
逐项排查:
- 任务是否真的完成了?查一下任务详情,
status是不是completed/failed(处理中不推)。 - 你的地址是不是公网可访问?我们能不能连上你的
/callback? - 端口是不是标准端口(80 / 443)?非标端口可能被安全策略拦掉。
- 你的
/callback是不是及时返回了 2xx?返回 4xx 会被直接放弃。 - 用
https了吗?证书是否有效?
收到的 result 里 url 怎么是个数组?
收到的 result 里 url 怎么是个数组?
部分模型一次会出多张图,
images[].url 可能是数组,按数组处理即可。结果链接有有效期吗?
结果链接有有效期吗?
result 里若带 expires_at(Unix 时间戳),表示该链接的过期时间,请及时转存。会推送「处理中」的状态吗?
会推送「处理中」的状态吗?
不会。只在任务最终成功或失败时推送一次。
最小接收端示例
Python
200,处理逻辑放后台异步做。