2

I am trying to download a file from google drive using Google service account. For that I have created a project, created a service account and keys. Now when I am trying to use google auth api, It is returning undefined.

Please find the code below.

const scope = ["https://www.googleapis.com/auth/drive"];
const authService = new google.auth.GoogleAuth({
  keyFile: "./service.json",                                                                                                                                                                                                                                            
  scopes: scope,
});

this is returning something like below,

GoogleAuth {
  checkIsGCE: undefined,
  jsonContent: null,
  cachedCredential: null,
  _cachedProjectId: null,
  keyFilename: './service.json',
  scopes: [ 'https://www.googleapis.com/auth/cloud-platform' ],
  clientOptions: undefined
}

although service.json is in the same folder and copied the credentials from workspace itself.

Please let me know. Thanks

1 Answer 1

1

Remember that you need to share the file with the service account so that it will have permissions to download the file.

// service account key file from Google Cloud console.
const KEYFILEPATH = 'C:\\ServiceAccountCred.json';

// Request full drive access.
const SCOPES = ['https://www.googleapis.com/auth/drive'];

// Create a service account initialize with the service account key file and scope needed
const auth = new google.auth.GoogleAuth({
    keyFile: KEYFILEPATH,
    scopes: SCOPES
});

 const driveService = google.drive({version: 'v3', auth});

var fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
var dest = fs.createWriteStream('/tmp/photo.jpg');
driveService.files.get({
  fileId: fileId,
  alt: 'media'
})
    .on('end', function () {
      console.log('Done');
    })
    .on('error', function (err) {
      console.log('Error during download', err);
    })
    .pipe(dest);

To see how authorization works check File upload node.js

Sign up to request clarification or add additional context in comments.

2 Comments

@DalmTo I have created the credentials file and shared with service account. Still. no luck with this authentication part.
@nick did manage how to solve this issue?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.