首先我已经通过以下命令安装了客户端库:
我想要实现Google BigQuery API,以便从BigQuery中的PHP代码执行查询。 p>
作曲家需要谷歌/云第二,我已经通过以下命令安装了Google Cloud SDK:
curl sdk.cloud .google | bash然后我运行这个命令来创建证书:
gcloud beta auth application-default login所有的过程都是成功的,并且在运行证书请求之后,我得到以下消息:
保存到文件的凭证: [/home/some/my/dir/application_default_credentials.json] 这些凭据将被任何请求应用默认凭证的库使用。然后我想在PHP上运行这段代码:
#包含使用composer require__DIR__安装的库的自动加载器。 /vendor/autoload.php; #导入Google Cloud客户端库使用Google\Cloud\BigQuery\BigQueryClient; #您的Google Cloud Platform项目ID $ projectId ='PROJECT ID'; #实例化一个客户端 $ bigquery = new BigQueryClient(['projectId'=> $ projectId ]); #新数据集的名称 $ datasetName ='my_new_dataset'; #创建新的数据集 $ dataset = $ bigquery-> createDataset($ datasetName); echo'数据集'。 $ dataset-> id()。 '创造'。但不幸的是我收到以下消息错误:
致命错误:Uncaught异常'Google\Cloud\Exception\ServiceException'带消息'无法加载默认凭证所以我的问题是:什么是错的,我必须做什么?
谢谢
解决方案默认凭据由适用于PHP的Google API客户端库,2.0.0及更新版本。要使用它们,请调用useApplicationDefaultCredentials:
$ client = new Google_Client(); $ client-> useApplicationDefaultCredentials();然后,使用凭据访问API服务,如下所示:
$ client-> setScopes(['www.googleapis/auth/books']); $ service = new Google_Service_Books($ client); $ results = $ service-> volumes-> listVolumes('Henry David Thoreau');我建议查看我给它的链接有更多选项,我们推荐使用服务帐户。
I want to implement Google BigQuery API so I can execute query from my PHP code in BigQuery.
First I have installed the client library by following command:
composer require google/cloudSecond I have installed the Google Cloud SDK by following command:
curl sdk.cloud.google | bashThen I run this command to create the credential:
gcloud beta auth application-default loginAll the process is success and after run credential request I get the following message:
Credentials saved to file: [/home/some/my/dir/application_default_credentials.json] These credentials will be used by any library that requests Application Default Credentials.Then I want to run this code on PHP:
# Includes the autoloader for libraries installed with composer require __DIR__ . '/vendor/autoload.php'; # Imports the Google Cloud client library use Google\Cloud\BigQuery\BigQueryClient; # Your Google Cloud Platform project ID $projectId = 'PROJECT ID'; # Instantiates a client $bigquery = new BigQueryClient([ 'projectId' => $projectId ]); # The name for the new dataset $datasetName = 'my_new_dataset'; # Creates the new dataset $dataset = $bigquery->createDataset($datasetName); echo 'Dataset ' . $dataset->id() . ' created.';But unfortunately I got following message error:
Fatal error: Uncaught exception 'Google\Cloud\Exception\ServiceException' with message 'Could not load the default credentialsSo my question is: whats wrong and what must I do?
Thank you
解决方案Default credentials are provided by the Google APIs Client Library for PHP, versions 2.0.0 and newer. To use them, call useApplicationDefaultCredentials:
$client = new Google_Client(); $client->useApplicationDefaultCredentials();Then, use the credentials to access an API service as follows:
$client->setScopes(['www.googleapis/auth/books']); $service = new Google_Service_Books($client); $results = $service->volumes->listVolumes('Henry David Thoreau');I am suggesting checking out the link I gave it has much more options and we recommend using service accounts.
更多推荐
Google BigQuery API PHP凭证
发布评论