Google API PHP 错误500
Google API PHP error 500
我在我的一个 PHP 脚本中使用 google 视觉 API。
当我通过终端执行脚本时,脚本运行良好:
php /var/www/html/my_script.php
但是当我想从我的浏览器执行它时,我收到错误 500:
PHP Fatal error: Uncaught
Google\Cloud\Core\Exception\ServiceException: {\n "error": {\n
"code": 401,\n "message": "Request had invalid authentication
credentials. Expected OAuth 2 access token, login cookie or other
valid authentication credential. See
https://developers.google.com/identity/sign-in/web/devconsole-project.",\n
"status": "UNAUTHENTICATED"\n }\n}\n
我不明白为什么错误消息建议我使用 OAuth 2,我不需要我的用户登录他的 google 帐户。
我的代码如下:
namespace Google\Cloud\Vision\VisionClient;
require('vendor/autoload.php');
use Google\Cloud\Vision\VisionClient;
$projectId = 'my_project_id';
$path = 'https://tedconfblog.files.wordpress.com/2012/08/back-to-school.jpg';
$vision = new VisionClient([
'projectId' => $projectId,
]);
$image = $vision->image(file_get_contents($path), ['WEB_DETECTION']);
$annotation = $vision->annotate($image);
$web = $annotation->web();
一般来说,构建Google云客户端时需要提供服务账号密钥文件。如果您在 Compute Engine 上 运行,或者您设置了应用程序默认凭据,则例外。由于您看到的是身份验证错误,因此这两种情况似乎都不是。
要获取服务帐户和密钥文件,请查看 documentation。
创建服务帐户并下载 json 密钥文件后,您可以将其提供给客户端库构造函数:
<?php
use Google\Cloud\Vision\VisionClient;
$vision = new VisionClient([
'projectId' => $projectId,
'keyFilePath' => '/path/to/keyfile.json'
]);
一旦您提供了有效的密钥文件,您应该能够向 Vision 发出经过身份验证的请求 API。
要避免此步骤,您可以在您的服务器或计算机上设置Application Default Credentials。
我在我的一个 PHP 脚本中使用 google 视觉 API。
当我通过终端执行脚本时,脚本运行良好:
php /var/www/html/my_script.php
但是当我想从我的浏览器执行它时,我收到错误 500:
PHP Fatal error: Uncaught Google\Cloud\Core\Exception\ServiceException: {\n "error": {\n
"code": 401,\n "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",\n "status": "UNAUTHENTICATED"\n }\n}\n
我不明白为什么错误消息建议我使用 OAuth 2,我不需要我的用户登录他的 google 帐户。
我的代码如下:
namespace Google\Cloud\Vision\VisionClient;
require('vendor/autoload.php');
use Google\Cloud\Vision\VisionClient;
$projectId = 'my_project_id';
$path = 'https://tedconfblog.files.wordpress.com/2012/08/back-to-school.jpg';
$vision = new VisionClient([
'projectId' => $projectId,
]);
$image = $vision->image(file_get_contents($path), ['WEB_DETECTION']);
$annotation = $vision->annotate($image);
$web = $annotation->web();
一般来说,构建Google云客户端时需要提供服务账号密钥文件。如果您在 Compute Engine 上 运行,或者您设置了应用程序默认凭据,则例外。由于您看到的是身份验证错误,因此这两种情况似乎都不是。
要获取服务帐户和密钥文件,请查看 documentation。
创建服务帐户并下载 json 密钥文件后,您可以将其提供给客户端库构造函数:
<?php
use Google\Cloud\Vision\VisionClient;
$vision = new VisionClient([
'projectId' => $projectId,
'keyFilePath' => '/path/to/keyfile.json'
]);
一旦您提供了有效的密钥文件,您应该能够向 Vision 发出经过身份验证的请求 API。
要避免此步骤,您可以在您的服务器或计算机上设置Application Default Credentials。