【发布时间】:2019-11-24 18:18:30
【问题描述】:
我有一个 google access_token 我想在创建 BigQuery 查询作业时使用它来进行身份验证。使用服务帐户 json 可以正常工作。
我有这个:
client = new BigQuery({
token: accessToken,
projectId: 'my-project'
});
return await client.createQueryJob(sql);
它仍在使用服务帐户凭据。我使用令牌运行的所有其他东西都可以正常工作。
以下是在没有 Google 客户端 API 的情况下运行 REST API 的示例。
const resp = await fetch(
'https://bigquery.googleapis.com/bigquery/v2/projects/my-project/jobs',
{
method: 'POST',
headers: {
authorization: `Bearer ${accessToken}`,
'content-type': 'application/json',
'Accept': 'application/json',
'Accept-Charset': 'utf-8'
},
body: JSON.stringify({
configuration: {
query: {
query: sql,
useLegacySql: false
}
}
})
}
);
const j = await resp.json();
如何让客户端 API 使用令牌?
【问题讨论】:
-
@GrahamPolley 谢谢,但不是真的。我可以直接使用其余的 API,但我想改用客户端库。
-
试试这个:
const options = { token: 'accessToken', projectId: 'my-project', }; const bigquery = new BigQuery(options); ..github.com/googleapis/nodejs-bigquery/blob/… -
@GrahamPolley 这和我的例子一模一样...
-
是的,你是对的。 JS 不是我的强项。但是,文档/API 明确表示您可以使用访问令牌。奇怪的。对不起,伙计,我很难过。