You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google NLP PHP示例应用报错403:请求缺少有效API密钥

Troubleshooting Google Cloud Natural Language PHP 403 Permission Denied Error

从你给出的报错信息来看,核心问题是请求缺少有效的API密钥或者权限配置存在问题,咱们一步步来排查解决:

1. 确认Cloud Natural Language API已启用

首先登录Google Cloud控制台,找到「API和服务」→「库」,搜索「Cloud Natural Language API」,检查它的状态是否为「已启用」。如果还没启用,点击「启用」按钮,等待几分钟让配置生效。

2. 检查API密钥的配置(若使用API密钥认证)

如果你是通过API密钥来调用服务的,要确保代码里正确传入了密钥:

require 'vendor/autoload.php';

use Google\Cloud\Language\LanguageClient;

// 替换成你的有效API密钥
$language = new LanguageClient([
    'key' => 'YOUR_VALID_API_KEY'
]);

同时要检查这个API密钥的限制设置:

  • 确保IP限制包含你本地/服务器的IP地址(如果设置了IP限制)
  • 确保API限制里包含「Cloud Natural Language API」(如果设置了API限制)

3. 服务账号认证的配置检查(推荐的认证方式)

如果用的是服务账号认证,要确认以下两点:

3.1 正确加载服务账号密钥文件

你需要在代码里指定服务账号JSON密钥的路径,或者通过环境变量来配置:

// 方式1:直接在代码里指定密钥路径
$language = new LanguageClient([
    'credentials' => 'C:\Users\Admin\Dropbox\HTDOCS\nlp\your-service-account-key.json'
]);

或者通过环境变量设置(Windows命令提示符):

set GOOGLE_APPLICATION_CREDENTIALS=C:\Users\Admin\Dropbox\HTDOCS\nlp\your-service-account-key.json

Windows PowerShell的话:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\Admin\Dropbox\HTDOCS\nlp\your-service-account-key.json"

3.2 服务账号权限配置

登录GCP控制台,找到「IAM与管理员」→「IAM」,找到你的服务账号,确保它拥有「Cloud Natural Language API User」或者「Editor」这类具备API调用权限的角色。权限变更后可能需要几分钟才能同步生效,耐心等一会儿再测试。

4. 更新依赖包版本

有时候旧版本的客户端库可能存在兼容性问题,运行下面的命令更新google/cloud-language到最新稳定版:

composer update google/cloud-language

你的报错信息:

Fatal error: Uncaught exception 'Google\Cloud\Core\Exception\ServiceException' with message '{ "error": { "code": 403, "message": "The request is missing a valid API key.", "status": "PERMISSION_DENIED" } } ' in C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Core\src\RequestWrapper.php:263 Stack trace: #0 C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Core\src\RequestWrapper.php(168): Google\Cloud\Core\RequestWrapper->convertToGoogleException(Object(GuzzleHttp\Exception\ClientException)) #1 C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Core\src\RestTrait.php(96): Google\Cloud\Core\RequestWrapper->send(Object(GuzzleHttp\Psr7\Request), Array) #2 C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Language\src\Connection\Rest.php(69): Google\Cloud\Language\Connection\Rest->send('documents', 'analyzeSentimen...', Array) #3 C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Language\src\LanguageClient.php(221): Google\Cloud\Language\Connection\Rest->analyzeSentiment(Array) #4 C:\Users in C:\Users\Admin\Dropbox\HTDOCS\nlp\vendor\google\cloud\Core\src\RequestWrapper.php on line 263

内容的提问来源于stack exchange,提问作者Slit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:25:41