Как решить 403 запретил доступ к корзине для облачного хранилища Google

Я хотел бы получить данные из Google Play Analytics, которые хранятся в Google Cloud Storage. В результате исследования выяснилось, что прямого API для получения данных отчета Google Play Analytics не существует. Таким образом, я нашел доступ к отчетам учетной записи Google Play через ссылку на API-интерфейс клиента Google API и следовал по той же ссылке. Я создал учетную запись службы, получил разрешение владельца и включил API Google Cloud тоже.

В коде, показанном в ссылке, я получаю ненужные данные, если я var_dump($bucket), и, если запустить дополнительный код, я получаю эту ошибку.

Неустранимая ошибка: необработанное исключение "Google\Cloud\Exception\ServiceException" с сообщением "{ "error": { "errors": [ { "domain": "global", "reason": " запрещено "," сообщение ":" У вызывающей стороны нет доступа к хранилищу 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; }

Принимая некоторую помощь. Пожалуйста, скажите мне какое-нибудь решение. заранее спасибо

2 ответа

Я обнаружил, что помимо "Просмотр финансовых данных" необходимо включить разрешение "Просмотр информации о приложении" (на глобальном уровне). Изменить разрешения Google API

В Google Play Developer Console (все приложения) -> Настройки -> Учетная запись разработчика -> Доступ к API -> Предоставить доступ.

Действительно, для получения окончательного решения необходимы дополнительные сведения о структуре вашего кода, как указано в приведенном выше комментарии. Судя по полученной ошибке и скопированной под ней части кода, ваше приложение может пропустить необходимый этап, если мы посмотрим на страницу документации "Google\Cloud\Storage\StorageClient", а именно строки, начинающиеся с: use Google\Cloud\ServiceBuilder;,

Кроме того, учетные данные, хранящиеся в JSON, могут быть неверными. Вы создали учетные данные на экземпляре с помощью команды gcloud auth login?

Другие вопросы по тегам