code: function HubotGoogleAuth(serviceName, clientId, clientSecret, redirectUrl, scopes, brain) {
      var client = new OAuth2(clientId, clientSecret, redirectUrl),
          tok_key = serviceName + '_GOOGLE_AUTH_TOKEN',
          ref_key = serviceName + '_GOOGLE_AUTH_REFRESH_TOKEN',
          exp_key = serviceName + '_GOOGLE_AUTH_EXPIRE_TIME';
  
      // may be null initially. It is your scipts job to hanlde initial app authorization
      // See generateAuthUrl and setCode
      client.setCredentials({
          access_token: brain.get(tok_key),
          refresh_token: brain.get(ref_key)
      });
  
      // Tells the google object to use this client to authenticate all requests
      google.options({
          auth: client
      });
  
      this.oauthClient = client
      this.scopes = scopes;
      this.google = google;
      this.brain = brain;
  
      // Make sure that these keys do not conflict with things that are already in your hubot's brain
      this.TOKEN_KEY = tok_key;
      this.REFRESH_KEY = ref_key;
      this.EXPIRY_KEY = exp_key;
      this.serviceName = serviceName;
  }
docs: Initialize this module with all the necessary google Oauth information
  along with the brain of your robot.
  This module will then store tokens into your robot's brain for you using keys like this:
  <serviceName>_GOOGLE_AUTH_TOKEN .....etc
  
  @param  serviceName   the name of google service this client should use.
  Keys names for the brain are generated based on service name.
  This allows scripts to share the same service or use different services
  @param  clientId      string, found in your client_secret.json
  @param  clientSecret  string, found in your client_secret.json
  @param  redirectUrl   string, found in your client_secret.json
  @param  scopes        string of scope urls, separated by semicolons
  @param  brain         your robot's brain