Exemple #1
0
    this.authenticate = function (options) {
        if (!options) {
            config.auth = undefined;
            return;
        }

        var authObj = null;
        switch (options.type) {
            case "oauth":
                authObj = new  Google.auth.OAuth2();
                authObj.setCredentials({
                    access_token: options.access_token || options.token
                  , refresh_token: options.refresh_token
                });
                break;
            case "key":
                authObj = options.key;
                break;
            case "jwt":
                authObj = new Google.auth.JWT(
                    options.email
                  , options.keyFile
                  , options.key
                  , options.scopes
                  , options.subject
                );
                break;
        }

        Google.options({ auth: authObj });
        config.auth = options;

        return authObj;
    };
function updateGlobalParams(paramName, value) {
    tl.debug("Updating Global Parameters");
    tl.debug("SETTING " + paramName + " TO " + JSON.stringify(value));
    globalParams.params[paramName] = value;
    google.options(globalParams);
    tl.debug("Global Params set to " + JSON.stringify(globalParams));
}
    this.authenticate = function (options) {
        if (!options) {
            config.auth = undefined;
            return;
        }

        var authObj = null;
        switch (options.type) {
            case "oauth":
                authObj = new Google.auth.OAuth2(options.client_id, options.client_secret, options.redirect_url);
                authObj.setCredentials({
                    access_token: options.access_token || options.token,
                    refresh_token: options.refresh_token
                });
                break;
            case "key":
                authObj = options.key;
                break;
        }

        Google.options({ auth: authObj });
        config.auth = options;

        return authObj;
    };
Exemple #4
0
module.exports = function(emitter, config, logger, cb) {
  config = extend(true, {}, require('./config.json'), config);

  var jwtClient = new google.auth.JWT(
    config.serviceEmail,
    config.keyFile,
    null, [
      'https://www.googleapis.com/auth/admin.directory.user',
      'https://www.googleapis.com/auth/admin.directory.user.security'
    ],
    config.accountEmail);

  google.options({ auth: jwtClient });
  jwtClient.authorize(function(err) {
    if (err) {
      logger.error('google-apps %s: %s', config.domain, err.message);
      return cb(err);
    }

    emitter.on('user.update', update.bind(this, config, 'update', logger));
    emitter.on('user.delete', update.bind(this, config, 'delete', logger));

    cb(null, config);
  });
};
Exemple #5
0
function uploadToYoutube(video_file, title, description,tokens, callback){
    var google = require("googleapis"),
        yt = google.youtube('v3');

    var oauth2Client = new google.auth.OAuth2("710857957569-cjc5k4m5d7nsqt73dpi16a9aab7aqo7f.apps.googleusercontent.com", "3pqlkqT0QhTJsy3LMlv4x3G1", '/');
    oauth2Client.setCredentials(tokens);
    google.options({auth: oauth2Client});

    return yt.videos.insert({
        part: 'status,snippet',
        resource: {
            snippet: {
                title: title,
                description: description
            },
            status: { 
                privacyStatus: 'private' //if you want the video to be private
            }
        },
        media: {
            body: fs.createReadStream(video_file)
        }
    }, function(error, data){
        if(error){
            callback(error, null);
        } else {
            callback(null, data.id);
        }
    });
};
Exemple #6
0
jwtClient.authorize(function(err, tokens) {
	if (err) {
		console.info('Ganalytics JWT error ', err);
		return err;
	}
	oauth2Client.setCredentials({access_token: tokens.access_token});
	google.options({ auth: oauth2Client });
	ganalytics = google.analyticsreporting('v4');
	// return ganalytics;
});
        oauth2Client.getToken(code, function(err, tokens) {
            if (err) {
                console.log(err);
                res.send(err);
                return;
            }
            // console.log(tokens);

// EJEMPLO DE OBTENER LOS DATOS DE GOOGLE + DEL USUARIO QUE HA HECHO LOGIN.

            oauth2Client.setCredentials(tokens);
            googleapis.options({
                auth: oauth2Client
            });
            plus.people.get({
                userId: 'me',
                auth: oauth2Client
            }, function(err, response) {
                if (err) {
                    console.log(err);
                    res.send(err);
                    return;
                }
                console.log(" ------------- Detalles de usuario ---------------");
                console.log("id: " + response.id);
                console.log("Name: " + response.displayName);
                console.log("Image url: " + response.image.url);
            });


// EJEMPLO DE BÚSQUEDA DE UN VIDEO EN YOUTUBE.

            var youtube = googleapis.youtube({
                version: 'v3',
                auth: oauth2Client
            });

            youtube.search.list({
                part: 'snippet',
                q: 'rubius',
                maxResults: 1
            }, function(err, response) {
                console.log("----------- Test buscar video ------------");
                if (err) {
                    console.log(err);
                    res.send(err);
                    return;
                }
                console.log(response.items);
            });


            res.send("check node console for access tokens and personal information");
        });
 jwtClient.authorize((err, tokens) => {
   if (err) {
     reject(err);
     return;
   }
   googleapis.options({
     auth: jwtClient
   });
   resolve({
     googleapis: googleapis,
     credentials: jwtClient.credentials,
   });
 });
        setAuthClient: function setAuthClient(accessToken, refreshToken) {
            var OAuth2 = google.auth.OAuth2;
            var googleAuth = configAuth.googleAuth;
            var oauth2Client = new OAuth2(
                googleAuth.clientID, googleAuth.clientSecret, googleAuth.callbackURL);

            oauth2Client.setCredentials({
                access_token: accessToken,
                refresh_token: refreshToken
            });

            google.options({auth: oauth2Client});
        },
        oauth2client.getToken(code, function(err, tokens){
            oauth2client.setCredentials(tokens);
            google.options({ auth: oauth2client });

            req.session.plus = google.plus({ version: 'v1' });
            req.session.drive = google.drive({ version: 'v2' });
            req.session.admin = google.admin({ version: 'directory_v1' });
            req.session.plus.people.get({ userId: 'me' }, function(err, user){
                req.session.email = user.emails[0].value;
                req.session.admin.users.get({userKey: req.session.email}, function(err, userinfo){
                    req.session.username =  userinfo.name.givenName;
                    req.session.isLoggedIn = true;
                    req.isAdmin = true;
                    res.redirect('/');
                });
            });

        });
// Returns an authorized API client by discovering the Cloud IoT Core API with
// the provided API key.
function getClient (serviceAccountJson, cb) {
  const serviceAccount = JSON.parse(fs.readFileSync(serviceAccountJson));
  const jwtAccess = new google.auth.JWT();
  jwtAccess.fromJSON(serviceAccount);
  // Note that if you require additional scopes, they should be specified as a
  // string, separated by spaces.
  jwtAccess.scopes = 'https://www.googleapis.com/auth/cloud-platform';
  // Set the default authentication to the above JWT access.
  google.options({ auth: jwtAccess });

  const discoveryUrl = `${DISCOVERY_API}?version=${API_VERSION}`;

  google.discoverAPI(discoveryUrl, {}, (err, client) => {
    if (err) {
      console.log('Error during API discovery', err);
      return undefined;
    }
    cb(client);
  });
}
Exemple #12
0
    handler: function(info){
      ad_client_id = info.text.split(' ')[1].replace(' ', '');
      end_date_str = info.text.split(' ')[2].replace(' ', '');

      google.options({ auth: oauth2Client });
      var auth_url = oauth2Client.generateAuthUrl({
        access_type: 'offline',
        scope: 'https://www.googleapis.com/auth/adexchange.seller.readonly'
      });
      //info.wait('verify');
      var reply = {
        title: '请先授权我帮您查询7日内您的Adx账号数据',
        pic: 'http://marketing.by/upload/medialibrary/577/doublecklock-logo.png',
        url: auth_url,
        description: [
          '请在获取验证码后按照\'verify [验证码]\'的格式将验证码发送给我'
        ].join('\n')
      };
      return reply;
    }
Exemple #13
0
	 upload: function(videoId, info, token, callback) {
	 	
		var google = require("googleapis");
        var yt = google.youtube('v3');

	    var oauth2Client = new google.auth.OAuth2(config.oath.client_id, config.oath.app_secret, config.oath.redirect_url);

	    oauth2Client.setCredentials({
	    	access_token: token.access_token,
  			refresh_token: token.refresh_token
	    });

	    google.options({auth: oauth2Client});

	    console.log('start uploading...')

	    yt.videos.insert({
	        part: 'status,snippet',
	        resource: {
	            snippet: {
	                title: info.title,
	                description: info.description
	            },
	            status: { 
	                // privacyStatus: 'public' //if you want the video to be private
	            },
	            tags: info.tags,
	            category: info.category
	        },
	        media: {
	            body: fs.createReadStream('assets/video/edited/'+ videoId +'.flv')
	        }
	    }, function(error, data){
	        if(error){
	        	console.log(error)
	            callback(error, null);
	        } else {
	            callback(null, data);
	        }
	    });
	},
Exemple #14
0
    run: function(step, dexter) {
        var OAuth2 = google.auth.OAuth2,
            oauth2Client = new OAuth2(),
            credentials = dexter.provider('google').credentials();

        // set credential
        oauth2Client.setCredentials({
            access_token: _.get(credentials, 'access_token')
        });
        google.options({ auth: oauth2Client });

        var ids      = step.input( 'id' );
        var dates    = step.input( 'internalDate' );
        var keepnum  = step.input( 'keepnum' ).first();
        var user     = step.input( 'userId' ).first();
        var label    = step.input( 'label' ).first();

        messages = _.zipWith( ids, dates, function( id, date ) { return { id: id, internalDate: date } } );

        messages.sort( function( a, b ) {
            if ( a.internalDate < b.internalDate ) return -1;
            if ( a.internalDate > b.internalDate ) return 1;
            return 0;
        } );

        if ( keepnum > 0 ) messages = messages.slice( 0, 0 - keepnum );

        var removes = [ ];
        var app = this;
        messages.forEach( function( item ) {
            removes.push( unlabel_msg( app, service, user, item.id, label ) );
        })

        Q.all( removes )
          .then( function( results ) { app.complete(  ) } )
          .fail( function( err ) { app.fail( err ) } );
    }
					self.auth.authorize(function(err, tokens) {
						if(err) console.error('Can\'t authorize Google Service Account', err);
						console.log('Google Service Account authorized', tokens);
						google.options({ auth: self.auth })
					})
Exemple #16
0
		usersModel.findById(req.params.id, function(err, user){
			if(err) res.send(err);
			var tokens = {};
			console.log(JSON.stringify(user, null, "\t"));
			tokens.access_token = user.access_token;
			tokens.token_type = user.token_type;
			tokens.id_token = user.id_token;
			tokens.expiry_date = user.expiry_date;

			oauth2Client.setCredentials(tokens);
			google.options({ auth: oauth2Client });

			//Check if it exists in RDF
			var queryname = user.name.split(" ");
			queryname = queryname[0] + queryname[1];
			var myquery = qtmp.findUserName({
				person: queryname, 
				username: "******"
			});
			// console.log(myquery);
			var rdfclient = new SparqlClient("http://localhost:3030/tdb/query");
			rdfclient.query(myquery).execute(function(error, results) {
				// console.log(JSON.stringify(results, null, "\t"));
				// res.send(JSON.stringify(results, null, "\t"));
				var value = _.pluck(results.results.bindings[0], "value");
				var ceva = _.include(value, queryname);
				//If it exists add the new user
				if (!_.include(results.results.bindings[0], queryname)){
					var add_user = qtmp.addUser({
						person: queryname
					});
					var rdfadder = new SparqlClient("http://localhost:3030/tdb/update");
					rdfadder.query(add_user).execute(function(err, succ){
						if (err) console.log("RDF Error: \n" + err);
						console.log("Added: " + queryname);
					});
				}
			});

			// Get the events of that user
			var eventsquery = qtmp.findEventsOf({
				person: queryname,
				evname: "evname",
				evstart: "evstart"
			});
			rdfclient.query(eventsquery).execute(function(err, results){
				console.log(JSON.stringify(results, null, "\t"));
				var actualrez = results.results.bindings;
				var the_events = _.reduce(actualrez, function(acm, item, key){
					var thing = {};
					thing.EventName = item.evname.value;
					thing.StartDate = item.evstart.value;
					acm.push(thing);
					return acm;
				}, []);

				res.render("users.jade", {
					user: user.name,
					events: the_events
				});
			});


			// Q.nfcall(goauth2.userinfo.get, {userId: "me"}).then(function(response){
			// 	res.render("users.jade", {
			// 		user: user.name,
			// 		stuff: JSON.stringify(user, null, "\t"),
			// 		picture: user.picture,
			// 		userinfo: JSON.stringify(response, null, "\t")
			// 	});
			// }, function(err){
			// 	res.render("users.jade", {
			// 		user: user.name,
			// 		picture: user.picture,
			// 		stuff: JSON.stringify(err, null, "\t"),
			// 	});
			// });
			con.close();
		});
Exemple #17
0
var request = require('request');
var crypto = require('crypto');
var googleapis = require('googleapis');
var router = express.Router();

var CLIENT_ID = '846221377468-jli3gaffq96jl4c5a74scpbnkvbc71ud.apps.googleusercontent.com',
CLIENT_SECRET = 'gNfIErIWeiIjIDAV7d86dTJs',
REDIRECT_URL = 'http://localhost:3000/oauth2callback';

var INJECT_JS = fs.readFileSync('inject.js');

var scopes = [
	'https://www.googleapis.com/auth/drive.file'
];
var oauth2Client = new googleapis.auth.OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
googleapis.options({ auth: oauth2Client });

function sha1file(filename, callback) {
	var shasum = crypto.createHash('sha1');

	var s = fs.ReadStream(filename);
	s.on('data', function(d) {
		shasum.update(d);
	});

	s.on('end', function() {
		var d = shasum.digest('hex');
		callback(d);
	});
}
Exemple #18
0
const URL = require('../config/url');

var bodyParser = require('koa-bodyparser');

const _auditlog = require('./models/auditlog'); // load audit log model
const _formbuilder = require('./models/formbuilder'); // load formbuilder model

let env = process.env;
var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var CLIENT_ID = env.GOOGLE_CLIENT_ID;
var CLIENT_SECRET = env.GOOGLE_CLIENT_SECRET;
var REDIRECT_URL = URL + '/auth/google/callback';
var API_KEY = env.GOOGLE_API_KEY;
var oauth2Client = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
google.options({ auth: oauth2Client }); // set auth as a global default
var plus = google.plus('v1');




function *index() {
  console.log("Index:", this.session);
  yield this.render('index', {session:this.session || {}});
}

function *about() {
  // Here we have access to this.pg.db.client which is client returned from pg.connect().
  console.log('Starting about page load:')
  var result = yield this.pg.db.client.query_('SELECT now()')
  console.log('result:', result)
Exemple #19
0
var Q = require('q');

var clientId = process.env.GOOGLE_CLIENT_ID;
var clientSecret = process.env.GOOGLE_CLIENT_SECRET;
var redirectURL = 'http://localhost:3006/google/callback';

var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var oauth2Client = new OAuth2(clientId, clientSecret, redirectURL);

var admin = google.admin('directory_v1');
google.options({ auth: oauth2Client });

var scopes = [
  'https://www.googleapis.com/auth/admin.directory.user.readonly',
  'https://www.googleapis.com/auth/admin.directory.user'
];

var authorizationURL = function() {
  return oauth2Client.generateAuthUrl({
    access_type: 'online',
    scope: scopes
  });
};

var setCode = function(code) {
  var deferred = Q.defer();

  oauth2Client.getToken(code, function(err, tokens) {
    if (err)
      return deferred.reject(err);
var ft = google.fusiontables('v2');    // retrieves class. 'V2' = version 2 of fusion tables

// Client ID and client secret are available at
// https://code.google.com/apis/console
var client_secrets = JSON.parse(fs.readFileSync('/home/ubuntu/workspace/client_secrets.json'));
var CLIENT_ID = client_secrets.web.client_id;
var CLIENT_SECRET = client_secrets.web.client_secret;

// location of the page google will return the user to after once client is
// logged into their google account and allowed permissions.
var REDIRECT_URL = 'https://builder2-deisingj1.c9users.io/fusiontable/auth';

//
var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
google.options({
    auth: oauth2Client  // sets this OAuth2Client as the authentication method
});

module.exports = {
    setRefreshToken: function(tokens) {
        oauth2Client.setCredentials({
            refresh_token: tokens.refresh_token
        });
    },
    blank: function() {
        return {};
    },
    get: function(ret) {
        var url = oauth2Client.generateAuthUrl({
            access_type: 'offline', // will return a refresh token
            scope: 'https://www.googleapis.com/auth/fusiontables.readonly' // can be a space-delimited string or an array of scopes
const google = require('googleapis')

google.options({ })

var OAuth2 = google.oauth2('v2')
var isOp = require('../../is-op').isOp

const ENV = require('../../env')
console.log(ENV)
const REDIRECT_URL = ENV.HOST + "/auth/~google-oauth2"

// exports.getAuthOrRefresh

// Helper to create OAuth2 Client
function createOAuthClient() {
  return new google.auth.OAuth2(ENV.CLIENT_ID, ENV.CLIENT_SECRET, REDIRECT_URL)
}

exports.getAuth = function (access_token) {
  // Access token provided from logging in.
  var oauth2Client = createOAuthClient()

  oauth2Client.setCredentials({
    access_token: access_token
  })

  return oauth2Client
}

exports.getCalendar = function () {
  return google.calendar({ version: 'v3' })
export default function() {
  let authClient = new JWT(client_email, null, private_key, SCOPES, null);
  google.options({
    auth: authClient
  }); // set auth as a global default
}