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

时间:2017-02-28 13:27:24

标签: php google-cloud-storage google-play-developer-api

我想从存储在Google云端存储中的Google Play Analytics中获取数据。经过研究,很多人发现没有直接的API来获取Google Play Analytics报告数据。 因此,我找到Access Google play account reports through Google API Client PHP Library链接,并遵循相同的给定。我已经创建了服务帐户,获得了所有者权限,并启用了google cloud api。

在链接中显示的代码中,如果我是var_dump($ bucket),我将获得垃圾数据,如果运行更多代码,我会收到此错误。

  

致命错误:未捕获的异常' Google \ Cloud \ Exception \ ServiceException'消息' {"错误":{"错误":[{"域":"全球","原因":"禁止","消息":"来电者没有storage.objects.list访问存储桶   我不能显示任何JS小提琴,因为桶名和密钥等其他信息对公​​司是保密的。   这是我使用的代码,

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; }

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

2 个答案:

答案 0 :(得分:1)

实际上,需要有关代码结构的更多信息详细信息,以提供明确的解决方案,如上面的评论中所述。根据收到的错误和在其下方复制的代码部分判断,如果我们查看“Google \ Cloud \ Storage \ StorageClient”文档page,您的应用可能正在跳过所需的阶段,即以以下行开头的行:use谷歌\云\ ServiceBuilder; 。

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

答案 1 :(得分:0)

我发现除了查看财务数据"您需要启用"查看应用信息" - 许可(全球一级)。 Edit Google API permissions

在Google Play开发者控制台(所有应用程序)下 - >设置 - >开发者帐户 - > API访问 - >授予访问权限。