1.1.1 • Published 11 years ago
uberjs v1.1.1
This does not use the official api, it is a library for interfacing with the actual app.
How is this different from the official api? This allows you to do everything the app does, it's not limited.
If you are looking for the official api, check out uber's api.
Uber.js
A semi-completed node library of the Uber Api
Install
npm install uber.js --save
First steps
- Get token. 
- Either use the included cli --> 
$ node node_modules/uber.js/bin/getToken.js - Or snoop it from https://m.uber.com/cn
 - make note of your token
 
 - Either use the included cli --> 
 - Get location
- Either use the included cli --> 
$ node node_modules/uber.js/bin/getCoordinates.js - Or use an online geolocation
 - take note of lat and long
 
 - Either use the included cli --> 
 
Use
with a fixed location
var UberClient = require('uber.js');
// Must init with token (str) and location (obj)
var client = new UberClient(token, {longitude: '', latitude: ''});
// Will return list of cars near location
client.pingClient(function(err, cars) {
    if (err) console.log(err);
    else {
        console.log(cars);
    }
});
/* Schedule a pickup at a certain location.
 * caution on this one
 */
var pickupLocation = {
    longitude: 38.897096,
    latitude: -77.036545
}
client.pickup(pickupLocation, function(err, resp) {
    if(err) console.log(err)
    else {
        console.log(resp);
    }
});
// Cancel a pickup at a certain location.
client.cancel(function(err, resp) {
    if (err) console.log(err);
    else {
        console.log(resp);
    }
});Use
with variable location
app.post('/scheduleUber', function(req, res) {
  var token = req.body.token;
  var location = {
    longitude: req.body.longitude,
    latitude: req.body.latitude
  };
  var client = new Uber(token, location);
  client.pickup(location, function(err, response) {
    if (err) res.send(err);
    else {
      res.send('Your uber is scheduled and shall arrive shortly!');
    }
  });
});API
Client- Constructor
 - param 
tokenuber token - param 
locationobject oflongitude&latitude 
pingClient- param 
callback(error, response) - returns list of cars around you
 
- param 
 pickup- param 
locationobject. Must includelongitude&latitudeproperties - param 
callback(error, response) - returns a response if the cab is scheduled.
 
- param 
 cancel- param 
callback(error, response) - returns a response if cab is cancelled.
 
- param 
 
This Api also includes helpers for generating tokens and geocoding on the fly
getTokennot reconmended- param 
emailstr uber account email - param 
passwordstr uber password - param 
callbackerr token - returns token from uber.com/cn
 
- param 
 getCoordinates- param 
addressstr an address to geocode - param 
callbackerr location - returns object of long lat
 
- param 
 
Example
var Uber = require('uber.js');
app.get('/getcars', function(req, res) {
  var creds = {
    email: req.body.email,
    password: req.body.password
  }
  var address = req.body.address;
    
  Uber.getToken(creds.email, creds.password, function(err, token) {
    // handle err omitted
    Uber.getCoordinates(address, function(err, location) {
      // handle err omitted
      var client = new Uber(token, location);
      client.doStuff();
    });
  });
});