【问题标题】:How to solve 403 forbidden to access bucket for google cloud storage如何解决 403 禁止访问谷歌云存储桶
【发布时间】:2017-02-28 13:27:23
【问题描述】:

我想从存储在 Google Cloud Storage 中的 Google Play Analytics 中获取数据。经过大量研究发现,没有直接的 API 来获取 Google Play Analytics 报告数据。 因此,我找到了Access Google play account reports through Google API Client PHP Library 链接并遵循相同的给定。我已经创建了服务帐户,授予了所有者权限,并且也启用了谷歌云 API。

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

致命错误:未捕获的异常 'Google\Cloud\Exception\ServiceException' 带有消息 '{ "error": { "errors": [ { "domain": "global", "reason": "forbidden", "message ": "调用者没有存储桶的 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; }

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    确实,需要更多关于代码结构的详细信息,以提供明确的解决方案,如上述评论中所述。从收到的错误和下面复制的代码部分来看,如果我们查看“Google\Cloud\Storage\StorageClient”文档page,您的应用程序可能正在跳过所需的阶段,即以:use Google\ 开头的行云\服务生成器; .

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

    【讨论】:

    • Credentails 创建为服务帐户,并将 json 代码复制到文件中,并在代码中给出路径。还有什么事情要做吗?
    • 这些应该足够了。 keyFilePath 是否正确?它是一个字符串:“从 Google Developers Console 检索到的服务帐户凭据 .json 文件的完整路径”。
    猜你喜欢
    • 2019-08-24
    • 2014-11-04
    • 2019-08-27
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2017-05-13
    • 2018-12-09
    相关资源
    最近更新 更多