google appstore销售报告下载自动化

时间:2018-09-06 10:58:31

标签: php google-api google-api-php-client

我正在向Google api库发出请求,并尝试下载一些报告以自动下载并导入到我们的系统。但是我遇到了问题。 我得到的错误代码:

  

Google \ Cloud \ Core \ Exception \ ServiceException:{“错误”:{“错误”:[{“域”:“全局”,“原因”:“禁止”,“消息”:“ service-worker @ service-worker.iam.gserviceaccount.com没有对pubsite_prod_rev_的storage.objects.list访问权限。” }],“代码”:403,“消息”:“ service-worker@service-worker.iam.gserviceaccount.com没有对pubsite_prod_rev_的storage.objects.list访问权限。” }}在263行的D:\ USER \ Web \ Directory \ tools \ vendor \ google \ cloud \ Core \ src \ RequestWrapper.php中

我尝试将权限添加到我要访问的pubsite_prod_dev目录中,但是,即使我是管理员,也遇到了另一个错误:

  

您无权查看此存储分区的元数据。请与存储桶所有者联系,以授予您“ storage.buckets.get”和“ storage.buckets.getIamPolicy”权限。

我了解gsutil工具,并成功使用了它,问题是我不能在我们的工具服务器中使用它,因为托管服务提供商拒绝了我们使用此软件(使用托管托管)。因此,我坚持尝试使API库正常工作。 有什么好的解决方案吗?我已经尝试过在github中找到的各种库和代码,但是似乎没有任何效果,或者已经过时,并且不建议使用这些库。 .. 我的代码:

<?php

require 'vendor/autoload.php';

use Google\Cloud\Storage\StorageClient;

$client  = new StorageClient([
    'scopes' => [StorageClient::READ_ONLY_SCOPE],
    'keyFile' => json_decode(file_get_contents('./client_secret.json'), true)
]);

$bucket = $client->bucket('pubsite_prod_rev_<code>');

foreach ($bucket->objects(['prefix' => 'sales/']) as $object) {
    print_r($object->name());
}

$file = $bucket->object('salesreport_201809.zip');
$file->downloadToFile();

1 个答案:

答案 0 :(得分:0)

这个答案也许来晚了。我遇到了同样的问题,并想起了google文档中的一个句子,该句子表明在Google Play控制台中有权访问报告的用户也可以访问存储这些报告的存储桶。

因此,诀窍是将服务帐户电子邮件(您创建该帐户以使用StorageClient访问云API)添加到Google Play控制台内的用户。