Fitbit ASAP allows you to send peer messages reliably between a Fitbit OS device and companion. If a peer is not connected at the time of sending, messages are cached and automatically sent as soon as a connection becomes available (hence the name ASAP, an English acronym for "as soon as possible"). Fitbit ASAP also handles the re-sending of dropped messages (e.g. when the peer connection is lost before a message has finished sending).
This module assumes you're using the Fitbit CLI in your workflow, which allows you to manage packages using npm.
npm i fitbit-asap
Fitbit ASAP has a uniform API that works on both the app and the companion. The only difference is the module name in the import statement, which is fitbit-asap/app
for the app and fitbit-asap/companion
for the companion.
import asap from "fitbit-asap/app"
asap.send("See you later, alligator.")
asap.onmessage = message => {
console.log(message) // After a while, crocodile.
}
import asap from "fitbit-asap/companion"
asap.send("After a while, crocodile.")
asap.onmessage = message => {
console.log(message) // See you later, alligator.
}
Queues a message to be sent to the peer.
The message to be sent to the peer. This can be any data type.
Options for how this message should be handled. Currently, timeout
is the only option.
The maximum number of milliseconds a message can remain in the queue. The default is 86400000 (24 hours).
Called when a message is received from the peer. The function assigned to asap.onmessage
accepts a single parameter containing the message, which will have the same data type it had when it was passed into the send
function.
Cancels all queued messages. Call this function on startup to limit messages to a single session.
TypeScript developers could install types definitions (from @types/fitbit-asap or fitbit-asap-types).
npm i @types/fitbit-asap