Как решить 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\Cloud\Storage\StorageClient", а именно строки, начинающиеся с: use Google\Cloud\ServiceBuilder;,
Кроме того, учетные данные, хранящиеся в JSON, могут быть неверными. Вы создали учетные данные на экземпляре с помощью команды gcloud auth login?