anjanesh
anjanesh

Reputation: 4251

Get Google Sheet Data using V4 API without OAuth

Using this nodeJS example, I could get the data from a public sheet.
But how do I get the data from a non-public sheet owned by me (my google a/c) ?
Is there some way to send in the username and password as arguments ?
I don't want OAuth way as I want the data to be pulled from the sheet & displayed on a public webpage.

The other option I can think of is to have OAuth2 done once write a script to handle refresh tokens automatically as a cron every hour ?

Upvotes: 1

Views: 1235

Answers (1)

Linda Lawton - DaImTo
Linda Lawton - DaImTo

Reputation: 116958

Since this is a file that you the developer own i would recommend using a service account

If you share the file with the service account it will then have permissions to access it without you needing to go though the oauth2 steps of authorizing your application.

On google cloud console simply create Service account credentials

const {google} = require('googleapis');

const auth = new google.auth.GoogleAuth({
  keyFile: '/path/to/your-secret-key.json',
  scopes: ['https://www.googleapis.com/auth/spreadsheets'],
});

Then change your auth code slightly. Open the service account key file and look for the service account email address its the only one witha @ in it. Share the file with the service account like you would any other user in google drive web app.

Once it has access you shouldn't need to authorize the app again.

I have a video on Google drive API upload file with Nodejs + service account which might help you a bit you just need the authorization code. Everything else you have should work as is.

Upvotes: 1

Related Questions