- 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/