在使用webmaster.searchanalytics API for Node时获取backendError 500

尝试使用webmaster.searchanalytics api时出现以下错误:

{ Error: Backend Error at Request._callback (/home/tom/Programming/MagpieMicroService/node_modules/google-auth-library/lib/transporters.js:85:15) at Request.self.callback (/home/tom/Programming/MagpieMicroService/node_modules/request/request.js:186:22) at emitTwo (events.js:125:13) at Request.emit (events.js:213:7) at Request.<anonymous> (/home/tom/Programming/MagpieMicroService/node_modules/request/request.js:1163:10) at emitOne (events.js:115:13) at Request.emit (events.js:210:7) at IncomingMessage.<anonymous> (/home/tom/Programming/MagpieMicroService/node_modules/request/request.js:1085:12) at Object.onceWrapper (events.js:314:30) at emitNone (events.js:110:20) code: 500, errors: [ { domain: 'global', reason: 'backendError', message: 'Backend Error' } ] } 

代码如下:

 'use strict'; var google = require('googleapis'); var fs = require('fs'); var key = require('./client_secret.json'); var prompt = require('prompt'); var tokens_file = './tokens/tokens.json'; var scopes = [ 'https://www.googleapis.com/auth/webmasters' ]; var OAuth2 = google.auth.OAuth2; var oauth2Client = new OAuth2( key.installed.client_id, key.installed.client_secret, key.installed.redirect_uris[0], ); fs.readFile(tokens_file, 'utf8', (err, data)=>{ if (err) { console.log('No token file: ',err); var url = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes, }); console.log( 'Head to the URL ', url, ' and paste the authorization code in:' ); prompt.start(); prompt.get(['authorizationCode'],(err, result)=>{ if (err) {return console.log(err);} var code = result.authorizationCode; oauth2Client.getToken(code, (err, tokens)=>{ if (err) {return console.log(err);} console.log(tokens) fs.writeFile( tokens_file, JSON.stringify(tokens), (err)=>{ if (err) {return console.log('Error ', err);} console.log('Tokens Saved') } ); oauth2Client.setCredentials({ access_token: tokens.access_token, refresh_token: tokens.refresh_token }); //Make the authorised call here const webmasters = google.webmasters('v3'); let date = new Date(); let startDate = new Date(date-7); let endDate = new Date(date-7); let params = { 'startDate': "2017-09-25",//startDate.toISOString(), 'endDate': "2017-09-26",//endDate.toISOString(), 'dimensions': ['query', 'device'], 'rowLimit': 5000, 'startRow': 0, 'siteUrl': encodeURIComponent('http://www.url.com/de/'), 'auth': oauth2Client, }; console.log(params.siteUrl); console.log(params); webmasters.searchanalytics.query(params,function(err, data){ if (err) return console.log('There was an error: ', err); console.log('This is the data: ', data); }); }); }); return; }; console.log('onfile') var tokens = JSON.parse(data); console.log('tokens: ', tokens); oauth2Client.setCredentials({ access_token: tokens.access_token, refresh_token: tokens.refresh_token }); console.log(oauth2Client) //Make the authorised call here // google.options({auth:oauth2Client}); const webmasters = google.webmasters('v3'); let date = new Date(); let startDate = new Date(date-7); let endDate = new Date(date-7); let params = { 'startDate': "2017-09-25",//startDate.toISOString(), 'endDate': "2017-09-26",//endDate.toISOString(), 'dimensions': ['query', 'device'], 'rowLimit': 5000, 'startRow': 0, 'siteUrl': encodeURIComponent('http://www.url.com/de/'), 'auth': oauth2Client, }; console.log(params.siteUrl); console.log(params); webmasters.searchanalytics.query(params,function(err, data){ if (err) return console.log('There was an error: ', err); console.log('This is the data: ', data); }); }); 

我没有看到我做错了什么。 我在谷歌authenticationapi有错误,所以认为可能是这样的。 我正在使用节点5.0和所有的身份validation的东西似乎工作正常,并返回正确的密钥。 这些令牌在validation后保存,但oauth框架似乎不起作用。