-1

Google PlayアナリティクスからGoogle Cloud Storageに保存されているデータを取得したいと考えています。 Google Playアナリティクスのレポートデータを取得するための直接的なAPIがないことが、ロットの調査後に判明しました。 したがって、私はAccess Google play account reports through Google API Client PHP Libraryリンクを見つけて、それに従ってください。所有者の許可を得てサービスアカウントを作成し、GoogleクラウドAPIも有効にしました。Google Cloud Storageのバケットにアクセスすることを禁止されている方法

リンクに表示されているコードでは、私はvar_dump($ bucket)の場合にジャンクデータを取得しています。さらにコードを実行するとこのエラーが発生します。

Fatal error: Uncaught exception 'Google\Cloud\Exception\ServiceException' with message '{ "error": { "errors": [ { "domain": "global", "reason": "forbidden", "message": "Caller does not have storage.objects.list access to bucket I cannot show any JS fiddle as the bucket name and other information like key is confidential to company. Here is code i used,

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

コードの153行目をチェックしてください。私たちはあなたのコードを見てあなたを助けません。 – DaImTo

+0

認証要件は[クラウドストレージに到達しようとしているデバイス](https://cloud.google.com/docs/authentication#getting_credentials_for_server-centric_flow)によって異なる場合があります。このコードはどこで実行されていますか?すべてのバケット名は、['stats/installs /'接頭辞(https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.24.0/storage/storageclient?メソッド=バケット)? – Nicholas

答えて

1

上記のコメントに記載されているように、確かに、コードの構造に関する詳細情報が必要です。 「Google \ Cloud \ Storage \ StorageClient」のドキュメントpageを見ると、受信したエラーとその下にコピーされたコード部分から判断すると、アプリは必要な段階をスキップしている可能性があります。 ServiceBuilder; 。

また、JSONに格納されている資格情報が正しくない可能性があります。 gcloud auth loginコマンドを使用してインスタンス上に資格情報を作成しましたか?

+0

クレデンシャルはseviceアカウントとして作成され、jsonコードはファイルにコピーされ、パスはコードで与えられます。もっと何かするべきことはありますか? – Pratima

+0

これで十分です。 keyFilePathは正しいですか?これは文字列です:「Google Developers Consoleから取得したサービスアカウントの資格情報.jsonファイルへのフルパス」 – George

関連する問題