2.0.1 • Published 9 years ago
flower-power-api v2.0.1
flower-power-api
A node.js module to interface with the cloud service for the Parrot Flower Power.
Get your access API
username
password
* Make sure you have an account created by your smartphone. You should be see your garden: myflowerpower.parrot.com.client_id
client_secret
Sign up to API here, and got by email your Access ID (client_id
) and your Access secret* (client_secret
).
API
Install
$ npm install flower-power-api
Load
var FlowerPowerApi = require('flower-power-api');
var api = new FlowerPowerApi();
Login to cloud
var credential = {
'username' : "...",
'password' : "...",
'client_id' : "...",
'client_secret' : "...",
'auto-refresh' : false
};
api.login(credential, function(err, res) {
if (err) console.log(err);
else {
// Head in the clouds :)
}
});
Get garden configuration (and specials methods)
api.getGarden(function(error, garden));
Communicate with Cloud
Every method have the sema pattern:
// For example:
'methodName': {method: 'GET/json', path: '/im/a/flower/', auth: true}
// Call like this:
api.methodName([data,] callback);
// 'data' is optional, 'callback' is required
data = {
url: {}
param1,
param2,
...
}
callback = function(error, results);
// Find all methods in ./FlowerPowerCloud.js
var api = {
// Profile
'login': {method: 'POST/urlencoded', path: '/user/v2/authenticate', auth: false},
'refresh': {method: 'POST/urlencoded', path: '/user/v2/authenticate', auth: false},
'getProfile': {method: 'GET/json', path: '/user/v4/profile', auth: true},
'getUserVersions': {method: 'GET/json', path: '/user/v1/versions', auth: true},
// Garden
'getSyncGarden': {method: 'GET/json', path: '/sensor_data/v4/garden_locations_status', auth: true},
'sendSamples': {method: 'PUT/json', path: '/sensor_data/v5/sample', auth: true},
'getSyncData': {method: 'GET/json', path: '/sensor_data/v3/sync', auth: true},
'getFirmwareUpdate': {method: 'GET/json', path: '/sensor_data/v1/firmware_update', auth: true},
'getLocationSamples': {method: 'GET/json', path: '/sensor_data/v2/sample/location/:location_identifier', auth: true},
'getStatistics': {method: 'GET/json', path: '/sensor_data/v1/statistics/:location_identifier', auth: true},
// Images
'getImageLocation': {method: 'GET/json', path: '/image/v3/location/user_images/:location_identifier', auth: true},
};
Param in url
// Api which need parameters into url
'anExample': {method: 'GET/json', path: '/:this/is/an/:example'}
api.anExample({
url: {
this: 'flower',
example: 'organ'
},
param1: '...',
param2: '...'
}, callback);
// Become
'/flower/is/an/organ'
Finally
Enjoy!
2.0.1
9 years ago
2.0.0
9 years ago
1.4.2
9 years ago
1.4.1
9 years ago
1.4.0
10 years ago
1.3.0
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.1.10
10 years ago
1.1.9
10 years ago
1.1.8
10 years ago
1.1.7
10 years ago
1.1.6
10 years ago
1.1.5
10 years ago
1.1.4
10 years ago
1.1.3
10 years ago
1.1.2
10 years ago
1.1.0
10 years ago