智谱清影api采用标准bearer token鉴权,非腾讯云式签名验证;php只需传authorization: bearer your_api_key,用错key或model会直接401/400。

PHP 调用文生图接口(如智谱清影)不需要自己手写签名验证逻辑——它用的是标准 Bearer Token 鉴权,不是腾讯云那种带 Signature 参数的签名验证法。
为什么 PHP 不该用“签名验证法”调智谱清影?
智谱清影的 API 是 RESTful + JWT Bearer 认证,和腾讯云 API 的 HMAC-SHA256 签名机制完全不同。如果你在文档里看到“签名”,那大概率是混进了腾讯云或阿里云的资料。强行套用签名逻辑只会返回 401 Unauthorized 或 400 Bad Request,因为:
- 智谱不校验
SecretId、Timestamp、Nonce等字段 - 没有
Signature请求参数,加了反而触发 400 - 请求头只要
Authorization: Bearer YOUR_API_KEY,且 Key 必须是图像生成专用 Key
PHP 用 cURL 发起鉴权请求的最小可行写法
绕过 SDK 直接发请求时,最容易错的是 header 格式、JSON body 编码、以及 model 名拼写。下面这段能跑通:
$url = 'https://open.bigmodel.cn/api/paas/v4/image/generations';
$apiKey = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // 图像专用 Key
$data = [
'model' => 'zhipu-image-stable',
'prompt' => '一只穿宇航服的橘猫站在月球表面',
'size' => '1024x1024'
];
$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, [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$result = json_decode($response, true);
echo $result['data'][0]['url'] ?? 'no image url';
} else {
echo "HTTP {$httpCode}: " . $response;
}
注意点:
-
json_encode()后不能手动加换行或空格,否则可能被判定为非法 JSON -
model值必须从官方当前支持列表选(如zhipu-image-stable),填glm-4v会报model not supported - 错误响应体也是 JSON,但字段结构和成功不同,别直接取
$result['data']而不判空
用 SDK 更省事,但要注意版本和初始化方式
官方推荐 zhipuai SDK ≥2.2.0,它把鉴权封装进 client 初始化里,不用手动拼 header。但很多人栽在第一步:
- 安装命令必须是
composer require zhipuai/zhipuai,不是zhipuai/sdk或其他变体 - 初始化时传的是字符串 Key,不是数组:
new ZhiPuAIClient('sk-xxx') - 调用的是
$client->images->generations(...),不是$client->chat->completions
漏掉任一条件,SDK 会静默降级成无鉴权请求,返回 401 却不报错。
真正容易被忽略的,是 Key 权限隔离这件事:文本模型 Key 和图像 Key 完全不通用,且控制台里看不到已创建的图像 Key 是否生效,只能靠实测。一旦用错 Key,所有请求都卡在鉴权层,连错误详情都不会返回——它根本不会走到模型路由那步。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











