我使用Google API控制台创建了一个服务帐户,并希望将此服务帐户与Google BigQuery CLI(bq)工具结合使用.
我一直在使用命令行工具使用〜/ .bigquery.v2.token中的有效OAuth2凭据成功访问BigQuery服务,但我似乎无法找到有关如何修改此文件的任何文档(或以其他方式配置该工具)改为使用服务帐户.
这是我当前的.bigquery.v2.token文件
{
"_module": "oauth2client.client",
"_class": "OAuth2Credentials",
"access_token": "--my-access-token--",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"invalid": false,
"client_id": "--my-client-id--.apps.googleusercontent.com",
"id_token": null,
"client_secret": "--my-client-secret--",
"token_expiry": "2012-11-06T15:57:12Z",
"refresh_token": "--my-refresh-token--",
"user_agent": "bq/2.0"
}
Run Code Online (Sandbox Code Playgroud)
我的另一个文件:〜/ .bigqueryrc通常看起来像这样:
project_id = --my-project-id--
credential_file = ~/.bigquery.v2.token
Run Code Online (Sandbox Code Playgroud)
我已经尝试将credential_file参数设置为我的服务帐户的.p12私钥文件,但没有运气,它给了我以下错误
******************************************************************
** No OAuth2 credentials found, beginning authorization process **
******************************************************************
Run Code Online (Sandbox Code Playgroud)
并要求我转到浏览器中的链接以再次设置我的OAuth2凭据.
命令行工具的初始配置选项"init":
bq help init
Run Code Online (Sandbox Code Playgroud)
没有显示有关如何设置此工具以使用服务帐户的有用信息.