启用通知/观看Google Play存储桶以编程方式下载报告

时间:2015-03-04 13:23:49

标签: google-play google-cloud-storage google-cloud-platform gsutil

有很多关于how to programatically download Google Play reports使用gsutil工具的新信息。 Google Play使用存储桶来存储这些报告,就像Google云端存储一样。我已经能够毫无问题地从Google Play存储桶下载报告。例如:

gsutil cp gs://pubsite_prod_rev_<my project id>/stats/installs/installs_<my app id>_201502_overview.csv .

另一方面,gsutil为watch Google Cloud Storage buckets提供了一项功能,因此您可以在每次存储桶中的对象发生更改(gsutil notification watchbucket)时收到通知。我还能够在我自己的Google云项目中创建的存储桶中启用通知。

问题是,我无法在Google Play数据桶中启用通知。它甚至可能吗?调用时出现AccessDeniedException: 403 Forbidden错误:

gsutil notification watchbucket -i playnotif -t sometoken https://notif.mydomain.com gs://pubsite_prod_rev_<my project id>
  • 我已按照here的所有步骤进行操作,特别注意与identifying a domain to receive notifications有关的步骤。
  • 正如我上面提到的,我已经能够完成我需要的所有流程,但是我自己在Google Cloud中使用自己的存储桶,而不是使用Google Play存储桶。
  • Google Play项目已与Google Cloud项目相关联。当我启用Google Play API访问权限时,它会自动执行此操作(Google Play开发者控制台 - &gt;配置(左侧菜单) - &gt; API访问权限。)
  • Google Play项目所有者和我自己的Google Cloud项目所有者是相同的。
  • 此所有者已成功注册并验证了用于接收通知的域名(以下示例为例,我使用notif.mydomain.com中的https验证了mydomain.comgcloud config set account owner-of-play-store-project@gmail.com 。 )
  • 这些域名也已在Google Webmaster Tools(左侧边栏 - &gt; API&amp; Auth - &gt;推送)中列入白名单。
  • 我已使用项目所有者帐户或我创建的服务帐户在我自己的Google Cloud存储桶中成功启用了通知。我已经尝试在Google Play存储桶中同时使用(所有者和相应的服务帐户),但没有成功。

任何想法将不胜感激。谢谢!

修改

我已经按照Google Developers Console步骤进行了操作,但使用了不同的程序(如下面的评论中所述)。按照Nikita的建议,我尝试使用相同的程序来执行这些步骤。

所以我配置了gsutil(通过gcloud)来使用所有者帐户:

$ gsutil acl ch -u my-play-store-service-account@developer.gserviceaccount.com:FC gs://pubsite_prod_rev_my-bucket-id
CommandException: Failed to set acl for gs://pubsite_prod_rev_my-bucket-id/. Please ensure you have OWNER-role access to this resource.

在尝试授予对服务帐户的完全访问权限时,我遇到了此错误:

$ gsutil defacl get gs://pubsite_prod_rev_my-bucket-id
No default object ACL present for gs://pubsite_prod_rev_my-bucket-id. This could occur if the default object ACL is private, in which case objects created in this bucket will be readable only by their creators. It could also mean you do not have OWNER permission on gs://pubsite_prod_rev_my-bucket-id and therefore do not have permission to read the default object ACL.
[]

因此,我尝试列出此存储桶的默认ACL,并找到:

{{1}}

结论:

这让我觉得,即使使用项目所有者帐户,此帐户也不会在Play商店存储桶中拥有OWNER角色。这意味着ACL无法修改,甚至无法列出,也无法启用通知,因为遗憾的是,我们并不真正拥有存储桶。

1 个答案:

答案 0 :(得分:1)

此刻,你不能。 Google Play拥有这些存储分区,最终用户没有订阅Object Change Notifications所需的存储空间FULL_CONTROL