Php 如何解决谷歌云存储403禁止访问bucket

Php 如何解决谷歌云存储403禁止访问bucket,php,google-cloud-storage,google-play-developer-api,Php,Google Cloud Storage,Google Play Developer Api,我想从Google Play Analytics获取数据,它存储在Google云存储中。经过研究,洛特发现,并没有直接的API来获取谷歌播放分析报告数据。 因此,我找到了链接,并遵循相同的给定。我已经创建了服务帐户,授予了所有者权限,并启用了谷歌云api 在链接中显示的代码中,如果我使用var_dump($bucket),我会得到垃圾数据,如果运行进一步的代码,我会得到这个错误 致命错误:未捕获异常“Google\Cloud\exception\ServiceException”,消息为“{”e

我想从Google Play Analytics获取数据,它存储在Google云存储中。经过研究,洛特发现,并没有直接的API来获取谷歌播放分析报告数据。 因此,我找到了链接,并遵循相同的给定。我已经创建了服务帐户,授予了所有者权限,并启用了谷歌云api

在链接中显示的代码中,如果我使用var_dump($bucket),我会得到垃圾数据,如果运行进一步的代码,我会得到这个错误

致命错误:未捕获异常“Google\Cloud\exception\ServiceException”,消息为“{”error:{”errors:[{”domain:“global”,“reason:“probled”,“message:“调用者没有对bucket的storage.objects.list访问权限” 我不能显示任何JS小提琴作为桶名和其他信息,如关键是保密的公司。 这是我使用的代码


接受一些帮助。请告诉我一些解决方案。提前感谢

事实上,需要更多关于代码结构的详细信息,以提供最终解决方案,如上面的评论所述。根据收到的错误和下面复制的代码部分判断,如果我们查看“Google\Cloud\Storage\StorageClient”文档,即以:use Google\Cloud\ServiceBuilder;开头的行


此外,JSON中存储的凭据可能不正确。您是否通过gcloud auth login命令在实例上创建了凭据?

我发现,除了拥有“查看财务数据”之外,您还需要启用“查看应用程序信息”权限(在全局级别)。


在Google Play开发者控制台下(所有应用程序)->Settings->Developer Account->API Access->Grant Access.

我认为您应该检查代码的第153行。我们无法帮助您查看您的代码。身份验证要求可能会有所不同。此代码在哪里运行?您的所有存储桶名称是否都以开头?Credentail创建为服务帐户,json代码为复制到文件中,路径在代码中给出。还有什么要做的吗?这些应该足够了。keyFilePath正确吗?它是一个字符串:“从Google开发者控制台检索到的服务帐户凭据的完整路径.json文件”。
require 'vendor/autoload.php'; 
use Google\Cloud\Storage\StorageClient; 
$client = new StorageClient([ 'projectId'=> 'myproject-id','scopes'=> [StorageClient::READ_ONLY_SCOPE],'keyFile'=> json_decode(file_get_contents('path_to_jsonfile'), true) ]);                                  $bucket=$client->bucket('mybucketname'); 
/*Find bucket name in Google Developer Console>>Reports */ 
$buckets=$client->buckets([ 'prefix' => 'stats/installs/']); 
foreach ($buckets as $bucket) {echo $bucket->name().PHP_EOL; }