我有一个网站,它做了从云上的Google BigQuery获取USN的简单工作。现在,每次访问时,我都需要有一个Google帐户以及该特定的电子邮件ID,应该在"团队选项卡"中分配"权限"。我基本上希望每个人都可以使用该网站。而且我正在使用PHP,所以我需要有关在这里有用的函数的帮助。
构建有权访问 BigQuery API 的应用程序(而不是需要用户授权步骤)的最佳方法是使用 OAuth2 服务帐户。本质上,服务帐号授权为"服务器到服务器"交互(例如服务器端 PHP 脚本与 BigQuery API 交互)提供基于证书的授权。
这里有关于使用带有服务帐户授权的 Google PHP 客户端库的文档。
您必须通过Google控制台创建一个"服务帐户",并在服务器上下载私钥文件(.p12)。并使用以下代码
/**
* setup service client using key file
* @param String $keyFileLoc location of .p12 file provided in google console
* @param String $clientEmail client location provided in google console
*/
function setupServiceClient($keyFileLoc,$clientEmail){
$client = new Google_Client();
$service = new Google_Service_Bigquery($client);
$client->setApplicationName("My Application Name");
$key = file_get_contents($keyFileLoc);
$cred = new Google_Auth_AssertionCredentials(
$clientEmail,
array('https://www.googleapis.com/auth/bigquery'),
$key
);
$this->client->setAssertionCredentials($cred);
return $service;
}