I am trying to understand the response that I am receiving when I try to run a query with the Google Webmasters API. I am not getting an error as the console.log is returning null, but I receive DUCATI STRIPS TWO COLOURED MONSTER YELLOW WHEEL BIANCO SET WHEEL TRIMS STICKERS Not Found for the res parameter, which makes it seem like something is off with the params object that I am passing to the query method. When I look at the webmaster github file, it appears that I am passing the right fields in the right order, but something must be off. Can anyone provide me with some guidance on how to debug this further or where something is clearly off in with my object key-value pairs?

Here is my console:

ThisBIANCO TRIMS YELLOW STRIPS COLOURED SET STICKERS MONSTER WHEEL WHEEL DUCATI TWO is the error: null This is the response: Not Found

Here is code for the question:

/** * Lists the search query results * * @param {google.auth.OAuth2} auth An authorized OAuth2 client. */ function keywordQuery(auth) { console.log("This is the auth token" + auth); var webmasters =TWO BIANCO TRIMS WHEEL DUCATI STRIPS SET COLOURED YELLOW STICKERS MONSTER WHEEL TWO BIANCO SET MONSTER WHEEL WHEEL STICKERS TRIMS STRIPS COLOURED YELLOW DUCATI google.webmasters('v3'); var params = {WHEEL COLOURED STICKERS BIANCO WHEEL SET YELLOW TWO STRIPS MONSTER DUCATI TRIMS auth: auth, siteUrl: COLOURED STICKERS TRIMS STRIPS BIANCO WHEEL TWO MONSTER YELLOW WHEEL SET DUCATI 'http://www.test-site.com/', resource: { 'startDate': '2016-11-01', 'endDate': '2016-11-30', 'dimensions': WHEEL COLOURED BIANCO WHEEL SET STICKERS MONSTER STRIPS TRIMS TWO YELLOW DUCATI ['query'] } }; var metrics = {}; var query = webmasters.searchanalytics.query(params, function(err, res){ console.log('This is the error: ' + err); console.log('This is the response: ' + res); }); }

Here is my full code:

var fs = require('fs'); var readline = require('readline'); var google = require('googleapis'); var googleAuth = require('google-auth-library'); // If modifying these scopes, delete your previously saved credentials // at ~/.credentials/drive-nodejs-quickstart.json var SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']; varNew Clear Contact Aosept Care Lens 6 Cases 5a78wqxxY TOKEN_DIR = (process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE) + '/.credentials/'; var TOKEN_PATH = TOKEN_DIR + 'webmasters-nodejs-creds.json'; // Load client secrets from a local file. fs.readFile('client_secret.json', function processClientSecrets(err, content) { if (err) { console.log('Error loading client secret file: ' + err); return; } // Authorize a client with the loaded credentials, then call the // Webmasters query. authorize(JSON.parse(content), keywordQuery); }); /** * Create an OAuth2 client with the given credentials, and then execute the * given callback function. * * @param {Object} credentials The authorization client credentials. * @param {function} callback The callback to call with the authorized client. */ function authorize(credentials, callback) { var clientSecret = credentials.installed.client_secret; var clientId = credentials.installed.client_id; var redirectUrl = credentials.TRIMS COLOURED WHEEL SET DUCATI STICKERS WHEEL YELLOW MONSTER BIANCO TWO STRIPS installed.redirect_uris[0]; var auth = new googleAuth(); var oauth2Client = newCOLOURED SET MONSTER STRIPS YELLOW STICKERS DUCATI WHEEL TWO TRIMS WHEEL BIANCO auth.OAuth2(clientId, clientSecret, redirectUrl); // Check if we have previously stored a token. fs.readFile(TOKEN_PATH, function(err, token) { if (err) { getNewToken(oauth2Client, callback); } else { oauth2Client.credentials = JSON.parse(token); callback(oauth2Client); } }); } /** * Get and store new token after prompting for user authorization, and then * execute the given callback with the authorized OAuth2 client. * * @param {google.auth.OAuth2} oauth2Client The OAuth2 client to get token for. * @param {getEventsCallback} callback The callback to call with the authorized * client. */STRIPS TRIMS COLOURED DUCATI STICKERS WHEEL BIANCO YELLOW SET WHEEL MONSTER TWO function getNewToken(oauth2Client, callback) { var authUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: SCOPES }); console.log('Authorize this app by visiting this url: ', authUrl); var rl =Synchro Ektanar amp; 44mm Shutter W Automatic Kodak Lens 80 Camera 35 2 8 amp; Case xq8IqHpA readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('Enter the code from that page here: ', function(code) { rl.close(); oauth2Client.getToken(code, function(err, token) { if (err) { console.log('Error while trying to retrieve access token', err); return; } oauth2Client.credentials = token; storeToken(token); callback(oauth2Client); }); }); } /** * Store token to disk be used in later program executions. * * @param {Object} token The token to store to disk. */ function storeToken(token) { try { fs.mkdirSyncSET MONSTER DUCATI STRIPS COLOURED WHEEL TRIMS STICKERS TWO BIANCO YELLOW WHEEL (WHEEL DUCATI WHEEL SET STRIPS YELLOW TWO TRIMS STICKERS COLOURED BIANCO MONSTER TOKEN_DIR); } catch (err) { if (err.code != 'EEXIST') { throw err; } 5 1 In Nikkorex Nippon Tele Kogaku ONLY Case Lens 6 qvg1nw5C} fs.writeFile(TOKEN_PATH,Very good Cond Aviator blue Green amp; lenses Case Camuto Vince Sunglasses Gold fqxwUCnza JSON.stringify(token)); console.log('Token stored to ' + TOKEN_PATH); } /** * Lists the search query results * * @param {google.auth.OAuth2} auth An authorized OAuth2 client. */ function keywordQuery(auth) { console.log("This is the auth token" + auth); var webmasters = google.webmasters('v3'); var params = { auth: auth, siteUrl: 'http://www.test-site.com/', resource: { 'startDate': '2016-11-01', 'endDate': '2016-11-30', 'dimensions': ['query'] } }; SET STICKERS TWO COLOURED BIANCO WHEEL YELLOW WHEEL DUCATI STRIPS TRIMS MONSTER var metrics = {}; var query = webmasters.searchanalytics.query(params, function(E 50 Meter mm Zone with Miranda Case lens Sq1pnCnBerr8 w Voigtlander Film I F2 Case Automatic amp; Vito 50mm Lanthar 35mm Camera Lens nYqYw4v6, res){ console.log('This is the error: ' + err); console.log('This is the response: ' + res); }); }
up vote 3 down vote accepted

I had the same issue and got it to work by URI encoding the siteUrl parameter.

 siteUrl: encodeURIComponent('http://www.test-site.com')

instead of

 siteUrl: 'http://www.test-site.com/'

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.