php可使用curl请求gemini提供的openai兼容chat/completions端点,以gemini api密钥设置bearer认证,并从choices[0].message.content读取文本。下面使用非流式请求,先确认php已启用curl及https证书验证,密钥从gemini_api_key环境变量读取。
准备请求并保留认证边界
兼容端点属于谷歌服务,应使用Gemini API密钥,不能把OpenAI密钥或应用订阅信息发送过去。以下示例适用于启用cURL扩展的PHP 8环境;服务地区、账户与API资格仍须满足谷歌当前要求。

谷歌官方说明OpenAI兼容接口及模型标识
<?php
$key = getenv('GEMINI_API_KEY');
if (!$key) {
throw new RuntimeException('GEMINI_API_KEY is not configured');
}
$payload = [
'model' => 'gemini-4-hydrogen',
'messages' => [
['role' => 'user', 'content' => '用中文解释PHP中的接口与抽象类。'],
],
'reasoning_effort' => 'medium',
];
$ch = curl_init('https://generativelanguage.googleapis.com/v1beta/openai/chat/completions');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 15,
CURLOPT_TIMEOUT => 120,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer ' . $key,
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_THROW_ON_ERROR),
]);
$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('Gemini API request failed: HTTP ' . $status);
}
$text = $data['choices'][0]['message']['content'] ?? null;
if (!is_string($text)) {
throw new RuntimeException('No text content returned');
}
echo $text, PHP_EOL;区分网络失败、接口拒绝与无文本结果
cURL失败表示连接或传输问题;HTTP非2xx表示服务拒绝或服务端错误;2xx但没有文本字段也不能当成已得到答案。实际应用可保存必要错误类型和请求关联信息,但日志不要包含Authorization头、密钥和不必要的用户内容。
使用AIsa生成图像与视频。仅需一个API密钥即可调用Gemini 3 Pro Image(图像)和Qwen Wan 2.6(视频)。

Hydrogen官方规格与支持能力
按兼容接口选择推理参数
此端点用reasoning_effort表示推理级别,Hydrogen支持xhigh;不设置时使用模型默认值。不要同时再传与其功能重叠的thinking_level或thinking_budget。兼容接口不是所有其他厂商字段的完整替代,扩展到工具调用或流式时,应继续按谷歌相应契约处理,而不是只复用文本解析代码。


















