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:
Programmatic API
var GoogleOAuth2 = 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'
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