You can use this working example which does
Init query object
Init oAuth2 object
Call bigQuery.Jobs.insert
if (!global._babelPolyfill) {
var a = require("babel-polyfill")
}
import {google} from 'googleapis'
let bigQuery = google.bigquery("v2")
describe('Check API', async () => {
it('Test query', async () => {
let result = await test('panada')
})
async function test(p1) {
try {
let query = `SELECT url FROM \`publicdata.samples.github_nested\`
WHERE repository.owner = 'panada'`
let auth = getBasicAuthObj()
auth.setCredentials({
access_token: "myAccessToken",
refresh_token: "myRefreshToken"
})
let request = {
"projectId": "myProject",
auth,
"resource": {
"projectId": "myProject",
"configuration": {
"query": {
query,
"useLegacySql": false
},
"dryRun": false
}
}
}
console.log(`query is: ${query}`)
let result = await callBQ(request) //Check JOB status to make sure it's done
console.log(`result is: ${JSON.stringify(result.data)}`)
result.forEach((row, index) => {
console.log(`row number ${index}, url is: ${row.url}`)
})
} catch (err) {
console.log("err", err)
}
}
/**
* Call BigQuery jobs.insert
* @param request
* @returns {Promise}
*/
async function callBQ(request) {
debugger
console.log("request", request)
try {
let result = await bigQuery.jobs.insert(request, request)//, (err, results) => {
console.log(`All good.....`)
return result
} catch (e) {
console.log(`Failed to run query: ${e}`)
}
}
/**
* Create oAuth object
* @returns {OAuth2Client}
*/
function getBasicAuthObj() {
let clientId = 'myClientId'
let clientSecret = 'mySecret'
let redirectUrl = 'url'
return new google.auth.OAuth2(
clientId,
clientSecret,
redirectUrl
)
}
})
note: You need to add this line to your package.json
"googleapis": "34.0.0"