我想从存储在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; }
接受一些帮助。请告诉我一些解决方案。提前致谢
答案 0 :(得分:1)
实际上,需要有关代码结构的更多信息详细信息,以提供明确的解决方案,如上面的评论中所述。根据收到的错误和在其下方复制的代码部分判断,如果我们查看“Google \ Cloud \ Storage \ StorageClient”文档page,您的应用可能正在跳过所需的阶段,即以以下行开头的行:use谷歌\云\ ServiceBuilder; 。
此外,存储在JSON中的凭据可能不正确。您是否通过gcloud auth login命令在实例上创建了凭据?
答案 1 :(得分:0)