Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌appstore销售报告下载自动化_Php_Google Api_Google Api Php Client - Fatal编程技术网

Php 谷歌appstore销售报告下载自动化

Php 谷歌appstore销售报告下载自动化,php,google-api,google-api-php-client,Php,Google Api,Google Api Php Client,我正在请求google api库并尝试下载一些报告,以自动下载并导入到我们的系统中。但是我遇到了一些问题。 我得到的错误代码是: Google\Cloud\Core\Exception\ServiceException:{“错误”:{“错误”:[{“域”:“全局”,“原因”:“禁止”,“消息”:“服务”-worker@service-worker.iam.gserviceaccount.com没有对pubsite\u prod\u rev\u.com的storage.objects.list访问

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

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

我已尝试向我试图访问的pubsite\u prod\u dev目录添加权限,但我遇到另一个错误,即使我是管理员:

您没有查看此bucket元数据的权限。请与bucket所有者联系以授予您“storage.bucket.get”和“storage.bucket.getIamPolicy”权限

我知道gsutil工具,并且我成功地使用了它,问题是我不能在我们的工具服务器中使用它,因为托管提供商拒绝了我们这个软件(使用托管)。所以我一直在努力使API库工作。 有什么好的解决方案吗?我已经尝试过github中的各种库和代码,但是似乎什么都不起作用,或者已经过时,而且这些库也没有被弃用。。 我的代码:


这个答案可能来得太晚了。我也遇到过同样的问题,记得谷歌文档中有一句话说,拥有谷歌Play控制台内报告权限的用户也可以访问存储这些报告的存储桶


因此,诀窍是添加服务帐户电子邮件(您创建该电子邮件是为了通过StorageClient访问云api)给Google Play控制台内的用户。

联系bucket的所有者,让他们授予您访问该bucket的权限。我已登录到主帐户,该帐户应为bucket的所有者。它表示您已验证的用户没有访问权限。找到访问该bucket的用户,并使用该用户登录或授予该用户访问权限。您也可以如果你要写一些不正常的东西,只请求只读访问。我不会尝试写,只下载文件,将用户添加到bucket中的列表,但是错误是一样的…你是否重新授权你的应用程序以获得新的访问令牌?如果是这样,我将等待10分钟,可能需要一段时间才能获得许可我要在那里工作,走出去
<?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();