See Simple In/Out API documentation for more details.
npm install simple-in-out
Compatible with Node.js >= 0.12.0 or io.js >= 1.0.0.
All methods return native promises.
var SimpleInOut = require("simple-in-out");
var client_a = new SimpleInOut({
client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
aws_access_key_id: process.env.AWS_ACCESS_KEY_ID,
aws_secret_access_key: process.env.AWS_SECRET_ACCESS_KEY,
aws_s3_bucket: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_BUCKET,
aws_s3_key: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_KEY
});
var client_b = new SimpleInOut({
client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
aws_access_key_id: process.env.AWS_ACCESS_KEY_ID,
aws_secret_access_key: process.env.AWS_SECRET_ACCESS_KEY,
aws_s3_bucket: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_BUCKET,
aws_s3_key: process.env.SIMPLE_IN_OUT_CREDENTIALS_S3_KEY
});
client_a.get_access_token(process.env.SIMPLE_IN_OUT_AUTHORIZATION_CODE).then(function(){
// Credentials are stored on AWS S3 after initialization with authorization code
return client_a.ok();
}).then(function(result){
assert(result.version);
// Credentials fetched from AWS S3
return client_b.ok();
}).then(function(result){
assert(result.version);
});
With an authorization code:
var SimpleInOut = require("simple-in-out");
var client_a = new SimpleInOut({
client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI
});
var client_b = new SimpleInOut({
client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI
});
client_a.get_access_token(process.env.SIMPLE_IN_OUT_AUTHORIZATION_CODE).then(function(credentials){
// Credentials can be set directly, bypassing get_access_token()
return client_b.set_credentials(credentials);
}).then(function(){
return client_a.ok();
}).then(function(result){
assert(result.version);
return client_b.ok();
}).then(function(result){
assert(result.version);
});
With access and refresh tokens:
var SimpleInOut = require("simple-in-out");
var client = new SimpleInOut({
client_id: process.env.SIMPLE_IN_OUT_CLIENT_ID,
client_secret: process.env.SIMPLE_IN_OUT_CLIENT_SECRET,
redirect_uri: process.env.SIMPLE_IN_OUT_REDIRECT_URI,
access_token: process.env.SIMPLE_IN_OUT_ACCESS_TOKEN,
refresh_token: process.env.SIMPLE_IN_OUT_REFRESH_TOKEN
});
client.ok().then(function(result){
assert(result.version);
});
Simple In/Out API client constructor.
Required:
-
options.client_id
: Simple In/Out application ID string. -
options.client_secret
: Simple In/Out secret string. -
options.redirect_uri
: Simple In/Out redirect URI.
Required for AWS S3 credential storage:
-
options.aws_access_key_id
: Amazon AWS access key ID string. -
options.aws_secret_access_key
: Amazon AWS secret access key string. -
options.aws_s3_bucket
: Amazon AWS S3 bucket name string. Bucket must exist. -
options.aws_s3_key
: Amazon AWS S3 key string.
Optional:
-
options.access_token
: Simple In/Out access token. -
options.refresh_token
: Simple In/Out refresh token.
Get access and refresh tokens via oAuth2 flow or from AWS S3 credential storage.
Required for use without AWS S3 credential storage, or when intializing with AWS S3 credential storage:
-
authorization_code
: Authorization code from Simple In/Out oAuth2 flow.
Get access and refresh tokens from AWS S3 credential storage.
Set access and refresh tokens. Stores credentials when used with AWS S3 credential storage.
Required:
-
options.access_token
: Simple In/Out access token. -
options.refresh_token
: Simple In/Out refresh token.
Refresh access token. Stores credentials when used with AWS S3 credential storage.
Verify your API client. See Simple In/Out documentation for additional details.
Retrieve company information. See Simple In/Out documentation for additional details.
Retrieve company geofences. See Simple In/Out documentation for additional details.
Retrieve company groups. See Simple In/Out documentation for additional details.
Retrieve current statuses. See Simple In/Out documentation for additional details.
Optional:
-
query_parameters.group_id
: Group ID to restrict the list of statuses.
Retrieve current user. See Simple In/Out documentation for additional details.
Retrieve a user. See Simple In/Out documentation for additional details.
Required:
-
user_id
: User ID.
Retrieve a user's usage statistics. See Simple In/Out documentation for additional details.
Required:
-
user_id
: User ID. -
query_parameters.start_date
: Start date to begin with. String in the formatMM/DD/YYYY
. -
query_parameters.end_date
: End date of statuses, no more than 31 days from start_date, in the formatMM/DD/YYYY
.
Optional:
-
query_parameters.comment
: Only consider “in” statuses with this comment as “in”. String. -
query_parameters.expanded
: Set to true if all statuses are to be included, otherwise defaults to aggregate statistics. Boolean.
- Copy
run-tests.sh.sample
torun-tests.sh
. - Generate an authorization code via the Simple In/Out oAuth2 flow:
https://www.simpleinout.com/oauth/authorize?response_type=code&client_id=XXXXXXXX&redirect_uri=XXXXXXXX
- Edit
run-tests.sh
to include AWS credentials, Simple In/Out credentials, and the authorization code. - Run
npm test