php - 通过 Google API 客户端 PHP 库访问 Google Play 帐户报告

标签 php google-cloud-storage

  • Google Play 开发者帐户报告存储在私有(private) Google Cloud Storage 存储桶中。
  • 我想以 PHP 编程方式下载这些报告。
  • 在此link section-> 使用客户端库和服务帐户下载报告为此提供步骤。
  • 但我仍然无法实现它。
  • 也没有适用于 PHP 的示例代码,因为 Google API 客户端 PHP 库仍处于测试版。

那么真的有可能在 PHP 中访问私有(private) Google Cloud Storage 存储桶吗?

我已经尝试过 gsutil 工具,但这并不能完全满足我的需求。

帮助将不胜感激。

最佳答案

首先,您必须创建一个用于身份验证的应用程序帐户。转到 Google Play Developer Console >>设置>>页面底部的API访问点击“创建帐户”(不是OAuth)。然后为创建的帐户设置权限并在 JSON 中生成 key 文件。应该看起来像这样:

{
    "type": "service_account",
    "project_id": "api-...",
    "private_key_id": "...",
    "private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
    "client_email": "...@...iam.gserviceaccount.com",
    "client_id": "...",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/..."
}

下一步在您的 PHP 脚本中使用生成的凭据。下载或在 Composer 中要求 Google Cloud Client Library .

使用 Google Cloud Client Library 方法授权和下载报告文件:

use Google\Cloud\Storage\StorageClient;

$client = new StorageClient([
    'scopes' => [StorageClient::READ_ONLY_SCOPE],
    'keyFile' => json_decode(file_get_contents('yourKeyFile.json'), true)
]);
$bucket = $client->bucket('pubsite_prod_rev_*'); //Find your bucket name in Google Developer Console >> Reports

//List all objects in bucket
foreach ($bucket->objects(['prefix' => 'stats/installs/']) as $object) {
    print_r($object->name());
}

//Download some file
$file = $bucket->object('stats/installs/installs_*_overview.csv');
$file->downloadToFile();

//Or print as string
echo $file->downloadAsString();

关于php - 通过 Google API 客户端 PHP 库访问 Google Play 帐户报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433224/

相关文章:

java - 用于存储照片的 Blobstore 或云存储

go - Cloud Run从GCS下载文件的速度异常缓慢

php - wordpress:馅饼注册覆盖登录重定向

php - 来自mysql的下拉列表的值

c# - 从谷歌云存储下载总是不正确的散列

node.js - 如何通过 GKE pod 访问 Google Cloud Storage 中的文件

google-app-engine - 匿名调用者没有 storage.objects.get

php - 使用 jquery 产品配置器添加和删除文本行的最佳方法

php - 如果插入查询执行完成则更改表名称

php - url 重定向到根文件夹后的 Laravel 斜线