AT&T's M2X Node.js Client
AT&T’s M2X is a cloud-based fully managed data storage service for network connected machine-to-machine (M2M) devices. From trucks and turbines to vending machines and freight containers, M2X enables the devices that power your business to connect and share valuable data.
This library aims to provide a simple wrapper to interact with AT&T M2X API. Refer to the Glossary of Terms to understand the nomenclature used through this documentation.
Getting Started
- Signup for an M2X Account.
- Obtain your Master Key from the Master Keys tab of your Account Settings screen.
- Create your first Device and copy its Device ID.
- Review the M2X API Documentation.
Installation
m2x-nodejs is available as an npm package. Install the latest version with:
npm install m2x
Usage
M2X Class
The main object encapsulating all API functionality is the global variable M2X
.
In order to create a M2X object you will need an API key, which can be either a Master Key or a key belonging to a specific device (in which case you will only be allowed to read/write to this device).
The following is a short example on how to instantiate an M2X object:
var M2X = require("m2x");
var m2x = new M2X("<API-KEY>");
The M2X object also provides a simple method for checking the API status (so if you are having connectivity issues, you can check whether the API is currently down):
m2x.status(function(status) {
console.log(status);
});
An M2X object provides methods for communicating with the remote API. Methods are organized under the following modules: keys
, devices
, charts
and distributions
.
-
Distributions
m2x.distributions.view("<DISTRIBUTION-ID>", function(response) {
console.log(response.json);
});
m2x.distributions.list(function(response) {
console.log(response.json);
});
-
Devices
m2x.devices.view("<DEVICE-ID>", function(response) {
console.log(response.json);
});
m2x.devices.list(function(response) {
console.log(response.json);
});
-
Keys
m2x.keys.view("<KEY-TOKEN>", function(response) {
console.log(response.json);
});
m2x.keys.list(function(response) {
console.log(response.json);
});
Refer to the documentation on each class for further usage instructions.
Examples
var API_KEY = "<YOUR KEY>",
M2X = require("m2x"),
m2xClient = new M2X(API_KEY);
m2xClient.devices.list(function(response) {
if (response.isSuccess()) {
response.json.devices.forEach(function(device) {
console.log(device);
});
} else {
console.log(response.error());
}
});
Example usage
You can find the examples in the examples
directory.
To use them, you should set up your key in examples/config.js
, then execute like: $ node examples/print-devices.js
.
Versioning
This library aims to adhere to Semantic Versioning 2.0.0. As a summary, given a version number MAJOR.MINOR.PATCH
:
MAJOR
will increment when backwards-incompatible changes are introduced to the client.MINOR
will increment when backwards-compatible functionality is added.PATCH
will increment with backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH
format.
Note: the client version does not necessarily reflect the version used in the AT&T M2X API.
License
This library is provided under the MIT license. See LICENSE for applicable terms.
Acknowledgements
This client is a direct port of Leandro Lopez' AT&T M2X client for Ruby so all the credit should go to him.