谷歌api-bigquery&;Appengine-无法创建数据集


Google api - bigquery & Appengine - cannot create dataset

我正在尝试在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;
}

然后我在谷歌api上找了这个类,但没有找到。

这是我下载的api-

https://github.com/google/google-api-php-client

问题出在哪里?

您需要包含自动加载文件,而不是设置包含路径。有两种方法可以做到这一点。第一个,我们建议,是通过composer:安装这个库

  1. 安装composer后,在项目的根目录中运行以下命令,然后要求您的供应商自动加载:

    $ cd /path/to/project
    $ composer require "google/apiclient:2.0.0@RC"
    
  2. 在您的项目中,需要自动加载文件,而不是使用set_include_path业务:

    require_once '/path/to/project/vendor/autoload.php`;
    

另一种方法(更符合您尝试做的事情)是下载一个具有所有依赖项的包,并需要JUST我们的包的自动加载器:

  1. 下载文件google-api-php-client-2.0.0-RC7
  2. 在您的脚本中,需要来自供应商目录的自动加载器:

    require_once '/path/to/google-api-php-client-2.0.0-RC7/vendor/autoload.php`;