Awesome
node-wind
An API for Wind bikes and boards
_Do you need a paid license ? https://jzarca01.github.io/contact
Usage
const Wind = require('node-wind');
const wind = new Wind({
licenseFilePath: './license_files/file.lic', // relative path to the root of the project
licenseFile, // if you prefer to specify the raw content of the license file
options = {}
});
How to use options
const Wind = require('node-wind');
const wind = new Wind({
timeout: 3000000000,
headers: {
'User-Agent': 'Nintendo 64',
'Device-id': 'your_own_uuid',
Platform: 'ios',
'App-Version': 'the latest version'
}
...whatever you need to add
});
For a cool example, see example/index.js
How to Log in
The authentication process is handled by Firebase, which relies on ReCAPTCHA whose implementation is only client-side Consequently, in order to implement this API you need to have a client-side part
For a cool example, run :
node example/client/index.js
and browse to http://localhost:8080/index.html
Then, once you have your Firebase token you can use it with this API For a cool example, see example/index.js
Methods
Login
await wind.login(firebaseToken, (region = "fr"));
Get boards (scooters) nearby
await wind.getBoardsNearby({
latitude,
longitude
});
Get bikes nearby
await wind.getBikesNearby({
latitude,
longitude
});
Get parking ports nearby
await wind.getParkingPortsNearby({
latitude,
longitude
});
Get operating countries
await wind.getOperatingCountries();
Get operating areas
await wind.getOperatingAreas();
Add card to account
await wind.addCard({ cardNumber, expMonth, expYear, cardCvc });
Delete card from account
await wind.deleteCard();
Get user
await wind.getUser();
Update profile
await wind.updateProfile({
firstName,
lastName,
email,
region
});
Add driver license
await wind.addDriverLicense({
firstName,
lastName,
licenseNumber
});
Get ride history
await wind.getHistory()
Get scooter
await wind.getScooter(boardNo, {latitude longitude})
// boardNo: S0024524
Set alarm
await wind.setAlarm(boardId, { latitude, longitude })
Unlock scooter
await wind.unlockScooter(boardId, { latitude, longitude })
/// boardId: "ef662f60-ade0-4022-ac5d-eae6cd0210ba"
Get ONGOING ride status
await wind.getRideStatus({latitude, longitude})
End ride
await wind.endRide({ latitude, longitude, finalPhoto = "https://..." })
Send ONGOING ride waypoint
await wind.sendRideWaypoint({ latitude, longitude })
Send plain records
await wind.sendPlainRecords(
{ latitude, longitude },
eventType = "mainActivityEnter"
)