Google API PHP错误500

时间:2018-01-31 21:22:29

标签: php google-api google-cloud-platform google-vision

我在我的一个PHP脚本中使用了google vision API。

当我通过终端执行脚本时,脚本运行良好:

php /var/www/html/my_script.php

但是当我想从浏览器执行它时,我收到错误500:

  

PHP致命错误:未捕获   Google \ Cloud \ Core \ Exception \ ServiceException:{\ n"错误":{\ n

  "代码":401,\ n"消息":"请求具有无效的身份验证   证书。预期的OAuth 2访问令牌,登录cookie或其他   有效的身份验证凭据。看到   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();

1 个答案:

答案 0 :(得分:1)

一般来说,在构建Google Cloud客户端时,您需要提供服务帐户密钥文件。例外情况是,如果您在Compute Engine上运行,或者您具有Application Default Credentials设置。由于您看到了身份验证错误,因此看起来都不是这样。

要获取服务帐户和密钥文件,请查看documentation

创建服务帐户并下载json密钥文件后,可以将其提供给客户端库构造函数:

B

提供有效的密钥文件后,您应该能够向Vision API发出经过身份验证的请求。

要避免此步骤,您可以在服务器或计算机上设置Application Default Credentials