Недостаточная ошибка областей проверки подлинности при использовании Google API
Я настроил Google SDK для использования Google API сУчетные данные приложения по умолчанию, Для моего локального компьютера создал JSON-файл учетных данных и установите его путь какGOOGLE_APPLICATION_CREDENTIALS
в качестве переменной среды. Это работает, как и ожидалось, без проблем.
Однако при развертывании приложения на виртуальной машине Google Cloud выдается следующая ошибка:
[Google_Service_Exception]
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"errors": [
{
"message": "Request had insufficient authentication scopes.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
Согласнодокументациявстроенная учетная запись службы должна быть связана с экземпляром виртуальной машины. Чтобы заставить его работать, я пытался использовать json-файл с учетными данными, как на локальной машине (что работало нормально), но он тоже не работал.
Отметим, что сообщение об ошибке касается областей, но не проблемы с аутентификацией. Что нужно сделать, чтобы он работал на экземпляре виртуальной машины Compute Engine?
Чтобы дать код инициализации клиента:
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Pubsub::PUBSUB);