google-authorize

Get an OAuth2 client with authorized token to be used with Google APIs.

Usage no npm install needed!

<script type="module">
  import googleAuthorize from 'https://cdn.skypack.dev/google-authorize';
</script>

README

Google Authorize

Get an OAuth2 client with an authorized token to be used with Google APIs.

All I want for Christmas is to be able to easily start working with the Google APIs. There is a nice Node quickstart that Google provides for this. This module is a wrapper of that code but instead of executing a callback function that passes a resultant OAuth2 client, it returns a Promise that is thenable which resolves the OAuth2 client.

Here's how to use it:

Visit Node quickstart and complete Step 1 to get your client_secret.json.

npm i google-authorize --save
const GoogleAuthorize = require('google-authorize');

// Use an array of scopes that correlate to to googleapi scopes
// i.e. ['spreadsheets'] -> https://www.googleapis.com/auth/spreadsheets
const googleAuth = new GoogleAuthorize(['spreadsheets']);

// Authorize and then make a request to the sheets API
googleAuth.authorize().then(listMajors);

function listMajors(auth) {
  var sheets = require('googleapis').sheets('v4');
  sheets.spreadsheets.values.get({
    auth: auth,
    spreadsheetId: '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms',
    range: 'Class Data!A2:E',
  }, function(err, response) {
    if (err) {
      console.log('The API returned an error: ' + err);
      return;
    }
    var rows = response.values;
    if (rows.length == 0) {
      console.log('No data found.');
    } else {
      console.log('Name, Major:');
      for (var i = 0; i < rows.length; i++) {
        var row = rows[i];
        // Print columns A and E, which correspond to indices 0 and 4.
        console.log('%s, %s', row[0], row[4]);
      }
    }
  });
}

## Change Log
Nov 6 2018 - Fixed undefined callback on fs.writeFile