google-oauth2-token

0.2.0 • Public • Published

google-oauth2-token Build Status NPM version

No headaches. Automation wins. Get a fresh OAuth2 token ready to be used for Google APIs calls in just one command

This package was designed to simplify server-to-server tasks automation and avoid headaches when dealing with OAuth, since it the unique method to perform most of the write operations via Google APIs

It provides a simple programmatic and command-line interface which abstracts you about performing any kind of manual steps related to the authorization and handshake process to obtain a valid OAuth2 token

This uses PhantomJS + Nightmare via nightmare-google-oauth2 plugin

Google API credentials setup

Be sure you have a project and a Web Application credentials with a Client ID and Client Secret from the Google API Console > API & Auth > Credentials

Then you must add the following URI as allowed redirects (without final slash):

http://localhost:8488

Then you should see something like:

Installation

npm install -g google-oauth2-token

Command-line interface

$ google-oauth2-token --help
 
Get Google OAuth2 token.
Usage: google-oauth2-token [options]
 
Options:
  --help, -h           Show help                                                
  --email, -e          Google Account user email. Available as env variable:
                       GOOGLE_EMAIL                                             
  --password, -p       Google Account user password. Available as env variable:
                       GOOGLE_PASSWORD                                          
  --client-id, -c      Google API Client ID                           [required]
  --client-secret, -x  Google API Client Secret. Available as env variable:
                       GOOGLE_CLIENTSECRET                                      
  --scope, -s          Google API permissions scope                   [required]
  --json, -j           Print tokens to stdout as JSON                           
 
Examples:
  google-oauth2-token -e user@gmail.com -p myP@ssw0rd 
  --scope https://www.googleapis.com/auth/youtube.upload
  --client-id xxxx ---client-secret xxxx

Example

$ GOOGLE_EMAIL=john@gmail.com GOOGLE_PASSWORD=p@s$w0rd google-oauth2-token \
  --client-id xxxx \
  --secret-client xxxx \
  --scope https://www.googleapis.com/auth/youtube \
  --json

The above show print something like:

{ 
  "access_token": "H3l5321N123sdI4HLY/RF39FjrCRF39FjrCRF39FjrCRF39FjrC_RF39FjrCRF39FjrC",
  "token_type": "Bearer",
  "refresh_token": "1/smWJksmWJksmWJksmWJksmWJk_smWJksmWJksmWJksmWJksmWJk",
  "expiry_date": 1425333671141 
}

Programmatic API

var GoogleOAuth2 = require('google-oauth2-token')
 
var params = {
  email: 'my.user@gmail.com',
  password: 'sup3r_p@s$w0rd',
  clientId: 'blablabla', // Google API Client ID
  clientSecret: 'private', // Google API Client Secret
  scope: 'https://www.googleapis.com/auth/youtube.upload'
}
 
GoogleOAuth2(params, function (err, tokens) {
  if (err) return console.error(err)
 
  console.log('OAuth2 access token:', tokens.access_token)
  console.log('OAuth2 refresh token:', tokens.refresh_token)
  console.log('OAuth2 token expiry date:', new Date(tokens.expiry_date))
})

Params

  • email required - Google Account user email. Example: john@gmail.com
  • password required - Google Account user password. Be aware with this. Use a temporal environment variable to store it
  • clientId required - Google API Client ID. You can obtain it from the Google API Console
  • clientSecret required - Google API Client Secret ID. You can obtain it from the Google API Console
  • scope required - Scope permissions URLs separated by spaces. Read more here

License

MIT © Tomas Aparicio

Package Sidebar

Install

npm i google-oauth2-token

Weekly Downloads

2

Version

0.2.0

License

MIT

Last publish

Collaborators

  • h2non