php可通过curl直接调用gemini interactions rest接口,将model设为gemini-4-carbon,并从返回的model_output步骤读取文本。前提是php启用curl扩展、服务器能访问该服务,且api项目已开通付费层;本例使用php 8及以上版本,不需要安装第三方php sdk。
准备API密钥和运行环境
在Google AI Studio创建或选择API密钥,并为对应项目设置计费。把密钥配置为服务器环境变量GEMINI_API_KEY,不写入网页JavaScript或公开源码。命令行PHP与网站所用PHP可能加载不同配置,需要在实际执行入口确认cURL扩展可用。

PHP官方cURL扩展文档
php -m export GEMINI_API_KEY="替换为实际密钥"
发送文本请求并读取结果
将以下代码保存为gemini.php。请求使用JSON正文、x-goog-api-key认证头,并保留官方入门示例中的API修订头。REST返回的是完整Interaction资源,因此按steps读取文本,不能直接照搬SDK的output_text便利属性。
使用AIsa生成图像与视频。仅需一个API密钥即可调用Gemini 3 Pro Image(图像)和Qwen Wan 2.6(视频)。

Gemini官方入门文档中的Interactions REST调用示例
<?php
$key = getenv('GEMINI_API_KEY');
if (!$key) {
throw new RuntimeException('请先设置 GEMINI_API_KEY');
}
$payload = json_encode([
'model' => 'gemini-4-carbon',
'input' => '用三句话说明 PHP 数组的常见用途。',
], JSON_UNESCAPED_UNICODE | JSON_THROW_ON_ERROR);
$ch = curl_init('https://generativelanguage.googleapis.com/v1beta/interactions');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 15,
CURLOPT_TIMEOUT => 180,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'x-goog-api-key: ' . $key,
'Api-Revision: 2026-05-20',
],
CURLOPT_POSTFIELDS => $payload,
]);
$raw = curl_exec($ch);
if ($raw === false) {
$message = curl_error($ch);
curl_close($ch);
throw new RuntimeException($message);
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($raw, true, 512, JSON_THROW_ON_ERROR);
if ($status < 200 || $status >= 300) {
throw new RuntimeException('API请求失败,HTTP ' . $status);
}
if (($data['status'] ?? '') !== 'completed') {
throw new RuntimeException('本例仅处理已完成的同步请求');
}
foreach ($data['steps'] ?? [] as $step) {
if (($step['type'] ?? '') !== 'model_output') continue;
foreach ($step['content'] ?? [] as $part) {
if (($part['type'] ?? '') === 'text') echo $part['text'] ?? '';
}
}php gemini.php
区分API失败与生成结果
代码分别检查传输失败、HTTP状态、JSON解析和任务状态,不把错误响应当作模型答案。180秒是此示例的客户端超时选择,不代表服务保证在该时间内完成。需要更长生成时应改用文档中的后台执行与状态查询流程;此同步示例只处理已完成的同步任务。


















