Node.js集成Gemini遇API Key无效错误的技术求助
解决Gemini API密钥无效的400错误
问题描述
按照Google的Node.js Gemini快速入门教程完成所有操作:在Google AI Studio创建API密钥并存入env文件,编写如下调用代码:
const { GoogleGenerativeAI } = require("@google/generative-ai"); // Access your API key as an environment variable (see "Set up your API key" above) const genAI = new GoogleGenerativeAI(process.env.API_KEY); async function run() { // For text-only input, use the gemini-pro model const model = genAI.getGenerativeModel({ model: "gemini-pro"}); const prompt = "Write a story about a magic backpack." const result = await model.generateContent(prompt); const response = await result.response; const text = response.text(); console.log(text); } run();
但执行node app时出现错误:GoogleGenerativeAIError: [400 Bad Request] API key not valid. Please pass a valid API key,以下是具体排查和解决方法:
排查与解决步骤
确认.env文件配置规范
- 文件名必须是
.env(注意开头的英文句号,部分系统会隐藏此类文件),内容格式为API_KEY=你的实际密钥,密钥前后不能加空格、引号,错误示例:API_KEY="abc123"、API_KEY= abc123。 - 确保
.env文件和app.js在同一目录下,避免路径错误导致无法读取。
- 文件名必须是
确保环境变量被正确加载
- 先安装
dotenv包:执行npm install dotenv。 - 在
app.js的最顶部添加加载代码:require('dotenv').config(); - 可以临时在代码中添加
console.log(process.env.API_KEY),执行node app后查看终端输出的密钥是否与Google AI Studio中的一致,验证变量是否加载成功。
- 先安装
验证API密钥本身有效性
- 登录Google AI Studio进入密钥管理页面,确认密钥未被禁用、删除,且没有设置IP/使用限制(若有限制,需保证当前运行环境IP在允许范围内)。
- 用curl命令直接测试密钥:
若返回正常结果,说明密钥有效,问题出在代码或环境变量加载;若仍返回400错误,需重新生成API密钥。curl "https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=你的API密钥" \ -H "Content-Type: application/json" \ -d '{"contents":[{"parts":[{"text":"Write a test sentence"}]}]}'
更新依赖包版本
- 执行
npm update @google/generative-ai,确保使用最新版本的Gemini SDK,避免旧版本兼容性问题。
- 执行
检查系统环境变量覆盖情况
- Linux/macOS终端执行
echo $API_KEY,Windows终端执行echo %API_KEY%,查看输出是否为目标密钥,排除系统中同名变量覆盖的可能。
- Linux/macOS终端执行
内容的提问来源于stack exchange,提问作者Samson Royal
相关产品推荐
相关产品推荐

