Google Cloud Vision API持续返回403错误求助
排查Google Cloud Vision API 403错误的常见原因
问题场景
调用Google Cloud Vision API时持续返回403错误,已尝试多个项目及新创建的API密钥,问题仍存在。调用代码如下:
const buffer = await selectedFile.arrayBuffer(); const imageBytes = Buffer.from(buffer).toString("base64"); let body = JSON.stringify({ requests: [ { image: { content: imageBytes, }, features: [{ type: "TEXT_DETECTION" }], }, ], }); let response = await fetch( "https://vision.googleapis.com/v1/images:annotate?key=" + GOOGLE_API_KEY, { method: "post", body: body, headers: { Accept: "application/json", "Content-Type": "application/json", }, } ); response.json(); console.log(response);
排查步骤
- 确认API服务是否启用:检查对应Google Cloud项目中,Cloud Vision API是否已开启。即使创建了API密钥,服务未启用也会返回403。
- API密钥的权限与限制:
- 检查API密钥的限制设置,是否只允许特定IP、HTTP referrer访问。如果是前端调用,需确保referrer规则匹配当前页面域名;如果是本地测试,可暂时移除限制测试。
- 确认密钥是否关联了正确的项目,且项目已开通Cloud Vision API的使用权限。
- 计费与配额状态:
- 检查项目是否已启用计费功能,Cloud Vision API需要绑定有效的计费账户才能正常使用,免费额度内也需完成计费设置。
- 查看是否达到API调用配额上限,虽然配额超限通常返回429,但部分情况下可能触发403,可在Cloud Console的配额页面确认。
- 请求格式与内容验证:
- 确保base64编码的图片内容无截断或格式错误,可尝试用在线工具验证编码后的内容是否能正常解码为图片。
- 检查请求体的JSON格式是否正确,
features中的type字段是否准确(TEXT_DETECTION是有效值,但需注意大小写)。
- 网络与环境问题:
- 检查本地网络是否有防火墙或代理拦截请求,导致无法正常访问Google API服务。
- 前端调用时,确认是否存在CORS问题,虽然CORS错误通常在浏览器控制台有明确提示,但部分配置不当可能间接导致403。
内容的提问来源于stack exchange,提问作者RANJAN KUMAR SINGH
相关产品推荐
相关产品推荐

