Node.js 使用访问令牌创建BigQuery作业

Node.js 使用访问令牌创建BigQuery作业,node.js,google-bigquery,Node.js,Google Bigquery,我有一个googleaccess\u令牌我想在创建BigQuery作业时使用它进行身份验证。使用服务帐户json可以很好地工作 我有这个: client = new BigQuery({ token: accessToken, projectId: 'my-project' }); return await client.createQueryJob(sql); 它仍在使用服务帐户凭据。我使用令牌运行的所有其他东西都可以正常工作 下面是在没有Google客户端API的情况下运

我有一个google
access\u令牌
我想在创建BigQuery作业时使用它进行身份验证。使用服务帐户json可以很好地工作

我有这个:

client = new BigQuery({
    token: accessToken,
    projectId: 'my-project'
});

return await client.createQueryJob(sql);
它仍在使用服务帐户凭据。我使用令牌运行的所有其他东西都可以正常工作

下面是在没有Google客户端API的情况下运行RESTAPI的示例

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使用令牌?

因此,在初始化BigQuery客户端时,需要使用以下代码指定显式凭据:

const bigquery=new bigquery({
projectId:'您的项目id',
keyFilename:“/path/to/keyfile.json”
});

也就是说,使用显式凭据的唯一方法是使用与服务帐户关联的json密钥文件


我希望这有帮助

这有帮助吗@格雷汉波利,谢谢,但不是真的。我可以直接使用rest API,但我想改用客户端库;const bigquery=新的bigquery(选项)@GrahamPolley这和我的例子一模一样……是的,你是对的。JS不是我的强项。但是,docs/API明确表示您可以使用访问令牌。古怪的对不起,伙计,我被难住了。不,你可以使用
access\u令牌作为另一个用户运行。如果我使用RESTAPI,它会按预期工作,但我希望使用推荐的方式并使用客户端API。这是使用一个服务帐户。@Asken这是为客户端库记录的吗?如果是的话,在哪里?在这种情况下,我建议你在GCP开一张票。