BigQuery[PHP API]获取可访问项目列表
我使用下面基于GCP文档的PHP代码来获取可以使用所选服务帐户访问的所有项目的列表BigQuery[PHP API]获取可访问项目列表,php,google-cloud-platform,google-bigquery,Php,Google Cloud Platform,Google Bigquery,我使用下面基于GCP文档的PHP代码来获取可以使用所选服务帐户访问的所有项目的列表 require __DIR__ . '/vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS=acc-key.json'); $client = new Google_Client(); $client->setApplicationName('SampleApp'); $client->useApplicationDefault
require __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=acc-key.json');
$client = new Google_Client();
$client->setApplicationName('SampleApp');
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/cloud-platform');
$service = new Google_Service_Bigquery($client);
$optParams = [];
do {
$response = $service->projects->listProjects($optParams);
foreach ($response['projects'] as $project) {
print_r($project);
}
$optParams['pageToken'] = $response->getNextPageToken();
} while ($optParams['pageToken']);
这确实有效,并且只从总共25个项目中获取一个或两个项目,这些项目可以使用此键访问
我通过访问其他项目并提供一个专有项目名称来确认对这些项目的许可
有没有关于缺失部分的提示
编辑:[根据米哈伊尔的回答]
如果我改变,我会得到下面的错误
$service = new Google_Service_Bigquery($client);
到
我得到下面的错误
PHP Notice: Undefined property: Google_Service_CloudResourceManager::$projects in /tests/ListFullSchema.php on line 18
Notice: Undefined property: Google_Service_CloudResourceManager::$projects in /tests/ListFullSchema.php on line 18
PHP Fatal error: Uncaught Error: Call to a member function listProjects() on null in /tests/ListFullSchema.php:18
Stack trace:
#0 {main}
thrown in /tests/ListFullSchema.php on line 18
Fatal error: Uncaught Error: Call to a member function listProjects() on null in /tests/ListFullSchema.php:18
这是因为Cloud Resource Manager v2没有projects.list方法,但有。如果要用于此任务,可以下载并按照说明安装。然后可以像中那样运行PHP代码 你应使用:
$service = new Google_Service_CloudResourceManager($client);
或者,您可以使用Python,如中的。服务版本在代码中指定,因此不需要自定义安装
$service = new Google_Service_CloudResourceManager($client);