google-spreadsheet-to-json icon indicating copy to clipboard operation
google-spreadsheet-to-json copied to clipboard

Error while fetching spreadsheet from Google

Open prathameshnyt opened this issue 3 years ago • 5 comments

Thank you for this library. We were using the following packages:

"google-spreadsheet-to-json": "^1.0.0",
"googleapis": "^43.0.0",

and they were working fine before but starting Aug 12 we are getting the following error while fetching the same spreadsheet:

OperationalError: Error: HTTP error 404 (Not Found) - <!DOCTYPE html><html lang="en"><head><meta name="description" content="Web word processing, presentations and spreadsheets"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"><link rel="shortcut icon" href="//docs.google.com/favicon.ico"><title>Page Not Found</title><meta name="referrer" content="origin"><link href="//fonts.googleapis.com/css?family=Product+Sans" rel="stylesheet" type="text/css" nonce="sBQomUSdSKNA5ZAXojPK4g"><style nonce="sBQomUSdSKNA5ZAXojPK4g">/* Copyright 2021 Google Inc. All Rights Reserved. */
49s
68	.goog-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .goog-inline-block{display:inline}*:first-child+html .goog-inline-

We have not changed anything from our side. Can you please suggest?

prathameshnyt avatar Aug 22 '21 22:08 prathameshnyt

The same issue for us in the same date. The google spreadsheet is private and was already shared with our google api service account - as before.

kamyweb avatar Aug 24 '21 09:08 kamyweb

same here

muanto avatar Aug 24 '21 09:08 muanto

Same here

nickerlan avatar Aug 24 '21 12:08 nickerlan

same here, seems the changes recently from google about privacy affecting this lib

darylsze avatar Sep 03 '21 10:09 darylsze

Same here. It's caused by Google pulling the rug on their Sheets v3 API in August 2021. I replaced this module with https://github.com/revolunet/spreadsheet-to-json

It's nearly a drop-in replacement. My old code was like...

var gsjson = require('google-spreadsheet-to-json')

// Some crazy way to get a token here.
// I was using google-tokens... https://github.com/bradoyler/google-tokens

const rows = await gsjson({
	spreadsheetId: documentId,
	token: token.credentials.access_token
})

New code is...

const { extractSheets } = require("spreadsheet-to-json");

// No token required, just make sure the document is shared (using the document's sharing UI)
// with the client_email mentioned in the service account keyfile.
// How do you get the keyfile? You create one in Google Cloud Console > IAM > Service Accounts.

const { ALL: rows } = await extractSheets({
	spreadsheetKey: documentId,
	credentials: require(`./.hiddenFromGit/my-google-generated-service-account-keyfile.json`),
})

chichilatte avatar Oct 28 '21 13:10 chichilatte