Я пытаюсь использовать службу облачного хранилища Google с помощью google-api-client-php SDK с учетными данными JSON и применяя следующий пример кода:
putenv("GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json");
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Storage::DEVSTORAGE_FULL_CONTROL);
$storage = new Google_Service_Storage($client);
$ret = $storage->buckets->listBuckets("project-id");
Тем не менее, эти коды в порядке после первых нескольких часов, когда я создаю учетные данные, но я получаю ошибку «Отказано в доступе» с тем же файлом кода / учетных данных несколько часов спустя.
PHP Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"}
],
"code": 403,
"message": "Forbidden"}
}
Я понятия не имею, если это проблема уровня кода или уровня обслуживания …
Убедитесь, что ваша учетная запись службы имеет необходимые разрешения в GCP:
В консоли перейдите по ссылке:
Api Manager> Учетные данные> Управление учетными записями служб> Разрешения> Добавить участника
На всплывающем экране вставьте адрес электронной почты своей учетной записи службы и предоставьте ей доступ «можно редактировать». Это должно сделать это.
Других решений пока нет …