0.0.4 • Published 6 years ago

google-api-load v0.0.4

Weekly downloads
36
License
MIT
Repository
github
Last release
6 years ago

google-api-loader npm Version Build Status Bundle Size

A thin, Promise-returning helper for loading the Google JavaScript API.

This work is totaly based on load-google-maps-api, just needed something like that for GAPI client, nothing more, sorry ;)

  • The Promise’s fulfilled callback is passed the gapi object
  • Optionally set a timeout, an API key, the language, and more

Usage

Example using import:

import loadGoogleApi from 'google-api-load'

loadGoogleApi().then(function (gapi) {
  gapi.load('client:auth2', function () {
    console.log('client:auth2 library has been loaded')
  })
})

More complex example using authentication and the Calendar API:

import loadGoogleApi from 'google-api-load'

var gapi = undefined;

function gapiSignIn(status) {
  if (status) {
    // Do something
  }
}

loadGoogleAPI({
  auth: {
    apiKey: "<YOUR_GAPI_KEY>",
    clientId: "<YOUR_CLIENT_ID>",
    discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"],
    scope: 'https://www.googleapis.com/auth/calendar.readonly',
    listener: gapiSignIn
  }
}).then((GoogleAPI) => {
  gapi = GoogleAPI;
}, (reason) => {
    console.error(reason);
});

Why

Need to use Google API with Webpack in better way ... such as load-google-maps-api

API

const loadGoogleApi = require('google-load-api')

GoogleApi(options)

Returns a Promise.

  • Fulfilled if loading was successful. The fulfilled callback is passed the gapi object. If loadGoogleApi is called multiple times on a page, the fulfilled callback will be passed the previously-loaded gapi object.
  • Rejected if we weren’t able to load the Google API after options.timeout.

See Usage.

options is an optional object literal:

KeyDescriptionDefault
timeoutTime in milliseconds before rejecting the Promise10000
auth.apiKeyThe API key to useundefined
auth.discoveryDocsAn array of discovery doc URLs or discovery doc JSON objectsundefined
auth.clientIdThe app's client ID, found and created in the Google Developers Consoleundefined
auth.scopeThe scopes to request, as a space-delimited stringundefined
auth.listenerListener function (boolean) for sign in eventsundefined
auth.timeoutTime in milliseconds before rejecting the Promise when loading client:auth2 library5000

WARNING: If you use auth dictionary then all undefined fields/options are mandatory !

Installation

$ yarn add google-api-load

License

MIT

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago