快手可灵API无官方PHP SDK,需用cURL手动调用;关键点:Authorization头、model为kling-1、prompt结构化、返回内容含代码块及Unicode陷阱、须人工审核合规性。

快手可灵 API 没有官方 PHP SDK
直接调用 https://api.kuaishou.com/ 下的可灵(Kling)大模型接口,在 PHP 中无法通过 composer 安装现成 SDK。官方只提供了 Python 示例和 OpenAPI 文档,PHP 需手动封装 HTTP 请求。
常见错误现象:401 Unauthorized(没传对 Authorization)、400 Bad Request(model 字段写错成 kling-v1 而非 kling-1)、500 Internal Error(prompt 过长或含非法控制字符)。
- 必须使用 HTTPS,且请求头带
Content-Type: application/json和Authorization: Bearer -
model参数目前稳定可用的是kling-1,不是文档里偶尔出现的kl-v1或ke-2024 - 快手要求 access_token 由其开放平台后台申请,且需开通「可灵大模型」权限,仅 OAuth2 授权码流程不生效
用 cURL 发起短视频脚本生成请求
PHP 最稳妥的方式是用原生 curl_exec(),避开 Guzzle 等依赖版本兼容问题。重点在构造 prompt:可灵对「短视频脚本」理解偏结构化,纯自然语言效果差。
示例场景:生成一条 30 秒宠物食品广告脚本,目标人群是 25–35 岁养猫女性
$url = 'https://api.kuaishou.com/v1/chat/completions';
$data = [
'model' => 'kling-1',
'messages' => [
[
'role' => 'user',
'content' => '你是一个短视频编导。请生成一段 30 秒内、面向 25-35 岁养猫女性的宠物食品广告脚本,包含分镜、画面描述、台词、时长标注。不要解释,只输出 JSON 格式,字段为:scene_number, visual, dialogue, duration_sec'
]
],
'temperature' => 0.3,
'max_tokens' => 512
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer ' . $_ENV['KUAISHOU_ACCESS_TOKEN']
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
- 务必检查
$result['choices'][0]['message']['content']是否为 JSON 字符串,可灵返回内容可能带 ```json``` 包裹或额外换行 -
temperature建议设为 0.2–0.4,太高易出逻辑断裂的分镜,太低则脚本模板化严重 - 如果返回
"error": {"code": "rate_limit_exceeded"},说明当前 token 的 QPS 超限,快手未公开具体配额,建议加usleep(100000)降频
解析返回内容时容易忽略的格式陷阱
可灵返回的文案不是纯文本,而是混入 Markdown、代码块、甚至隐藏 Unicode 字符(如 U+200B 零宽空格),直接 echo 到前端会错乱或截断。
- 用
json_last_error()判断是否真能解析成数组,很多情况下返回的是字符串而非合法 JSON - 先用
trim()去首尾空白,再用preg_replace('/^```(?:json)?\s*|\s*```$/m', '', $raw)清除代码块标记 - 若内容含中文引号、破折号等全角符号,
json_decode()会静默失败,需提前替换为半角或用mb_convert_encoding($str, 'UTF-8', 'UTF-8')强制重编码
生成文案后怎么落地成短视频?
可灵只管输出文字脚本,不生成视频。PHP 层不能直接调用快手的视频合成 API(该能力未开放给第三方),只能导出结构化数据供后续环节使用。
- 把解析后的分镜数组存入数据库,字段包括
visual(画面提示词)、dialogue(配音文本)、duration_sec(时长),供内部剪辑系统读取 - 若需自动配音,可将
dialogue送入阿里云SpeechSynthesizer或火山引擎volc_tts,注意音频采样率统一为 44100Hz - 画面生成需另接图生视频模型(如 Kling 自身的图像生成接口),但当前 PHP 调用其
/v1/images/generations接口成功率低于 60%,建议加 fallback 机制(例如返回默认素材 ID)
最常被跳过的一步:所有生成内容必须人工审核。快手开放平台协议明确要求「生成内容不得含医疗建议、投资建议、未成年人引导等高风险表述」,PHP 后端需对接基础关键词过滤(如 治愈、必涨、一吃就瘦),否则账号可能被回收 token 权限。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











