Webhook 回调
除了轮询状态接口,你还可以在提交任务时提供回调 URL,在生成完成时自动接收通知。工作原理
- 提交时附带回调 URL:在提交任务时加入
callback_url - 接收通知:任务完成(成功或失败)时,PoYo AI 会向你的 URL 发送 POST 请求
- 处理结果:你的服务器会收到完整的任务数据,包括生成的文件
回调请求
任务完成时,PoYo AI 会向你的回调 URL 发送 POST 请求。回调请求体与状态接口的任务数据结构相同,但不包含外层的code 和 data 包装。
请求头
请求体
失败任务回调
签名验证
PoYo 使用 HMAC-SHA256 对每个 Webhook 请求签名。现有接收端可以忽略这些请求头,但生产系统应当验证签名。 获取你的 Webhook HMAC 密钥:task_id是回调请求体中顶层的task_idtimestamp是X-Webhook-Timestamp的值webhook_hmac_key由GET /api/api-keys/webhook-secret返回
Python 验证
Node.js 验证
要求
你的回调接口必须满足以下要求:- 仅支持 HTTPS:必须使用 HTTPS 协议(不支持 HTTP)
- URL 最大长度:2048 个字符
- 响应超时:必须在 30 秒内响应
- 成功响应:应返回 HTTP 200-299 状态码
- 禁止内网 IP:不能使用私有/内网 IP 地址(例如 192.168.x.x、10.x.x.x)
- 公网可访问:必须能从互联网公开访问
重试策略
如果你的回调接口未响应或返回错误:- 重试次数:最多自动重试 5 次
- 重试间隔:指数退避,从约 60 秒开始,最长 10 分钟
- 最终失败:所有重试均失败后,不再继续重试
实现示例
Python (Flask)
Node.js (Express)
Go
安全最佳实践
测试
使用 ngrok 进行本地测试
开发期间,你可以使用 ngrok 暴露本地服务器:Webhook 与轮询对比
对于处理大量请求的生产系统,建议使用 Webhook,以减少 API 调用并即时获得通知。
后续步骤
任务状态
了解如何轮询任务状态
图像模型
浏览所有图像模型
视频模型
浏览所有视频模型
快速开始
返回快速开始指南