Google api - bigquery & Appengine - 无法创建数据集
Posted
技术标签:
【中文标题】Google api - bigquery & Appengine - 无法创建数据集【英文标题】:Google api - bigquery & Appengine - cannot create dataset 【发布时间】:2016-04-30 12:30:22 【问题描述】:我正在尝试在 Google Bigquery 中创建一个新的数据集,同时使用 Google App Engine 作为服务器。
这是我使用的代码 -
set_include_path("Google/" . PATH_SEPARATOR . get_include_path());
require_once 'Service.php';
require_once 'Client.php';
require_once 'Service/Resource.php';
require_once 'Model.php';
require_once 'Collection.php';
require_once 'Service/Bigquery.php';
$project_id = "test";
$dataset_id = "TestDataset";
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Bigquery::BIGQUERY);
$bigquery = new Google_Service_Bigquery($client);
$ConfigureDataset = new Google_Service_Bigquery_DatasetReference();
$ConfigureDataset->setProjectId($project_id);
$ConfigureDataset->setDatasetId($dataset_id);
$dataset = new Google_Service_Bigquery_Dataset();
$dataset->setDatasetReference($ConfigureDataset);
$dataset->setDescription($dataset_id);
$options = array();
$response = $bigquery->datasets->insert($project_id,$dataset,$options);
我得到的错误是 -
Fatal error: Class 'Monolog\Logger' not found in /base/data/home/apps/1.392457623149040913/Google/Client.php on line 963
在客户端链接 963 上我发现了这个 -
protected function createDefaultLogger()
$logger = new Logger('google-api-php-client');
$logger->pushHandler(new MonologStreamHandler('php://stderr', Logger::NOTICE));
return $logger;
比我在 Google api 上寻找这个类但没有找到它。
这是我下载的api -
https://github.com/google/google-api-php-client
可能是什么问题?
【问题讨论】:
【参考方案1】:您需要包含自动加载文件,而不是设置包含路径。有两种方法可以做到这一点。我们推荐的第一个是通过composer 安装这个库:
安装 composer 后,在项目的根目录中运行以下命令,然后要求 您的 供应商自动加载:
$ cd /path/to/project
$ composer require "google/apiclient:2.0.0@RC"
在您的项目中,需要自动加载文件而不是使用 set_include_path
业务:
require_once '/path/to/project/vendor/autoload.php`;
其他方式(更符合您的尝试)是下载包含所有依赖项的包,并要求自动加载器仅用于我们的包:
-
下载文件google-api-php-client-2.0.0-RC7
在您的脚本中,需要供应商目录中的自动加载器:
require_once '/path/to/google-api-php-client-2.0.0-RC7/vendor/autoload.php`;
【讨论】:
包含自动加载时,我收到此错误 - 已弃用:google-api-php-client 的自动加载器在 1.1.3 中已移至 src/Google/autoload.php。此重定向将在 1.2 中删除。请调整您的代码以使用新位置。 这是因为在“src/Google/autoload.php”包中包含一个旧版自动加载器。您可以使用它,但您会收到旧版警告。相反,更改您的包含路径以使用“vendor/autoload.php”中的自动加载器以上是关于Google api - bigquery & Appengine - 无法创建数据集的主要内容,如果未能解决你的问题,请参考以下文章
在 Google BigQuery 中查询 JSON 字符串
如何使用 google-api-python-client 设置 BigQuery 配置属性?
Google BigQuery 和 Google API 客户端包
如何使用API 而不是使用Google BigQuery数据传输服务?