必须先获取api key与secret、构造v4签名请求头并提交json请求体,缺一导致401/403错误;推荐用官方php sdk自动处理签名,手动实现需严格遵循v4规范生成authorization头。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在PHP中调用已绑定API Key的火山引擎模型服务,必须先获取有效凭证、构造符合签名规范的HTTP请求头,并按接口文档要求提交JSON格式的请求体。缺少任一环节都会返回401或403错误。
获取并确认API Key与Secret
登录火山引擎控制台→进入「访问密钥」页面→复制「Access Key ID」和「Secret Access Key」。这两个值在后续签名计算中不可替换,【Secret Access Key一旦泄露必须立即轮换】。
检查当前API Key是否已授权对应模型服务:点击「权限管理」→查看策略中是否包含类似「vei:InvokeModel」的操作权限。
安装官方SDK或手动构造请求
方法一:使用官方PHP SDK(推荐)
执行 composer require volcengine/ve-sdk-php 安装SDK;创建Client实例时传入AccessKeyID和SecretAccessKey;调用对应模型的invoke方法即可,SDK自动处理签名、重试和超时。
方法二:手动构造HTTP请求(适用于轻量集成)
用cURL发送POST请求到模型服务地址(如 https://ml.volcengineapi.com/api/v1/models/your-model-name/invoke),Header中必须包含:X-Date(ISO8601格式UTC时间)、Host、Authorization(含签名字符串);Body为标准JSON,例如{"input":{"text":"你好"}}}。
注意:Authorization头中的签名必须按火山引擎V4签名规范生成,需对HTTP方法、路径、查询参数、Header列表、请求体哈希逐层加密,手写极易出错。
编写可运行的调用代码
第一步:定义基础参数
$accessKeyId = 'AKL...';
$secretAccessKey = 'SL...';
$endpoint = 'https://ml.volcengineapi.com';
$modelId = 'your-model-id';
第二步:生成签名所需的时间戳与Header
$date = gmdate('Ymd\THis\Z'); $shortDate = gmdate('Ymd'); $host = parse_url($endpoint, PHP_URL_HOST);
第三步:构造标准化请求字符串与签名密钥
这一步需按V4规范拼接canonicalRequest和stringToSign,再用HMAC-SHA256两次计算得出Signature。完整逻辑超过20行,建议直接复用SDK中的Signer类。
第四步:发起请求
$ch = curl_init(); curl_setopt_array($ch, [CURLOPT_URL => "$endpoint/api/v1/models/$modelId/invoke", CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode(['input'=>['text'=>'测试调用']]), CURLOPT_HTTPHEADER => ["Content-Type: application/json", "X-Date: $date", "Authorization: HMAC-SHA256 Credential=$accessKeyId/$shortDate/ap-southeast-1/ml/request, SignedHeaders=content-type;host;x-date, Signature=$signature"]); $result = curl_exec($ch); curl_close($ch);
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











