@researchable/fitbit-web-api
v0.0.1
Published
Fitbit provides a Web API for accessing data from Fitbit activity trackers Aria scale and manually entered logs Anyone can develop an application to access and modify a Fitbit users data on their behalf so long as it complies with Fitbit Platform Terms o
Downloads
2
Readme
fitbit_web_api
FitbitWebApi - JavaScript client for fitbit_web_api Fitbit provides a Web API for accessing data from Fitbit activity trackers, Aria scale, and manually entered logs. Anyone can develop an application to access and modify a Fitbit user's data on their behalf, so long as it complies with Fitbit Platform Terms of Service. These Swagger UI docs do not currently support making Fitbit API requests directly. In order to make a request, construct a request for the appropriate endpoint using this documentation, and then add an Authorization header to each request with an access token obtained using the steps outlined here: https://dev.fitbit.com/build/reference/web-api/oauth2/#obtaining-consent. This SDK is automatically generated by the Swagger Codegen project:
- API version: 1
- Package version: 1
- Build package: io.swagger.codegen.languages.JavascriptClientCodegen For more information, please visit https://dev.fitbit.com/build/reference/web-api/help/
Installation
For Node.js
npm
To publish the library as a npm, please follow the procedure in "Publishing npm packages".
Then install it via:
npm install fitbit_web_api --save
Local development
To use the library locally without publishing to a remote npm registry, first install the dependencies by changing
into the directory containing package.json
(and this README). Let's call this JAVASCRIPT_CLIENT_DIR
. Then run:
npm install
Next, link it globally in npm with the following, also from JAVASCRIPT_CLIENT_DIR
:
npm link
Finally, switch to the directory you want to use your fitbit_web_api from, and run:
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>
You should now be able to require('fitbit_web_api')
in javascript files from the directory you ran the last
command above from.
git
If the library is hosted at a git repository, e.g. https://github.com/GIT_USER_ID/GIT_REPO_ID then install it via:
npm install GIT_USER_ID/GIT_REPO_ID --save
For browser
The library also works in the browser environment via npm and browserify. After following
the above steps with Node.js and installing browserify with npm install -g browserify
,
perform the following (assuming main.js is your entry file, that's to say your javascript file where you actually
use this library):
browserify main.js > bundle.js
Then include bundle.js in the HTML pages.
Webpack Configuration
Using Webpack you may encounter the following error: "Module not found: Error: Cannot resolve module", most certainly you should disable AMD loader. Add/merge the following section to your webpack config:
module: {
rules: [
{
parser: {
amd: false
}
}
]
}
Getting Started
Please follow the installation instruction and execute the following JS code:
var FitbitWebApi = require('fitbit_web_api');
var defaultClient = FitbitWebApi.ApiClient.instance;
// Configure OAuth2 access token for authorization: oauth2
var oauth2 = defaultClient.authentications['oauth2'];
oauth2.accessToken = "YOUR ACCESS TOKEN"
var api = new FitbitWebApi.ActivityApi()
var activityId = 56; // {Number} The ID of the activity, directory activity or intensity level activity.
var manualCalories = 56; // {Number} Calories burned that are manaully specified. Required with activityName must be provided.
var startTime = "startTime_example"; // {String} Activity start time. Hours and minutes in the format HH:mm:ss.
var durationMillis = 56; // {Number} Duration in milliseconds.
var _date = new Date("2013-10-20"); // {Date} Log entry date in the format yyyy-MM-dd.
var distance = 56; // {Number} Distance is required for logging directory activity in the format X.XX and in the selected distanceUnit.
var opts = {
'activityName': "activityName_example", // {String} Custom activity name. Either activityId or activityName must be provided.
'distanceUnit': 56 // {Number} Distance measurement unit. Steps units are available only for Walking (activityId=90013) and Running (activityId=90009) directory activities and their intensity levels.
};
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully.');
}
};
api.addActivitiesLog(activityId, manualCalories, startTime, durationMillis, _date, distance, opts, callback);
Documentation for API Endpoints
All URIs are relative to https://api.fitbit.com
Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- FitbitWebApi.ActivityApi | addActivitiesLog | POST /1/user/-/activities.json | Log Activity FitbitWebApi.ActivityApi | addFavoriteActivities | POST /1/user/-/activities/favorite/{activity-id}.json | Add Favorite Activity FitbitWebApi.ActivityApi | addUpdateActivitiesGoals | POST /1/user/-/activities/goals/{period}.json | Update Activity Goals FitbitWebApi.ActivityApi | deleteActivitiesLog | DELETE /1/user/-/activities/{activity-log-id}.json | Delete Activity Log FitbitWebApi.ActivityApi | deleteFavoriteActivities | DELETE /1/user/-/activities/favorite/{activity-id}.json | Delete Favorite Activity FitbitWebApi.ActivityApi | getActivitiesByDate | GET /1/user/-/activities/date/{date}.json | Get Activity Summary by Date FitbitWebApi.ActivityApi | getActivitiesGoals | GET /1/user/-/activities/goals/{period}.json | Get Activity Goals FitbitWebApi.ActivityApi | getActivitiesLog | GET /1/user/-/activities.json | Get Lifetime Stats FitbitWebApi.ActivityApi | getActivitiesLogList | GET /1/user/-/activities/list.json | Get Activity Log List FitbitWebApi.ActivityApi | getActivitiesTCX | GET /1/user/-/activities/{log-id}.tcx | Get Activity TCX FitbitWebApi.ActivityApi | getActivitiesTypeDetail | GET /1/activities/{activity-id}.json | Get Activity Type FitbitWebApi.ActivityApi | getActivitiesTypes | GET /1/activities.json | Browse Activity Types FitbitWebApi.ActivityApi | getFavoriteActivities | GET /1/user/-/activities/favorite.json | Get Favorite Activities FitbitWebApi.ActivityApi | getFrequentActivities | GET /1/user/-/activities/frequent.json | Get Frequent Activities FitbitWebApi.ActivityApi | getRecentActivities | GET /1/user/-/activities/recent.json | Get Recent Activity Types FitbitWebApi.ActivityIntradayTimeSeriesApi | getActivitiesResourceByDateIntraday | GET /1/user/-/activities/{resource-path}/date/{date}/1d/{detail-level}.json | Get Intraday Time Series FitbitWebApi.ActivityIntradayTimeSeriesApi | getActivitiesResourceByDateRangeIntraday | GET /1/user/-/activities/{resource-path}/date/{base-date}/{end-date}/{detail-level}.json | Get Activity Intraday Time Series FitbitWebApi.ActivityIntradayTimeSeriesApi | getActivitiesResourceByDateRangeTimeSeriesIntraday | GET /1/user/-/activities/{resource-path}/date/{date}/{end-date}/{detail-level}/time/{start-time}/{end-time}.json | Get Activity Intraday Time Series FitbitWebApi.ActivityIntradayTimeSeriesApi | getActivitiesResourceByDateTimeSeriesIntraday | GET /1/user/-/activities/{resource-path}/date/{date}/1d/{detail-level}/time/{start-time}/{end-time}.json | Get Intraday Time Series FitbitWebApi.ActivityTimeSeriesApi | getActivitiesResourceByDatePeriod | GET /1/user/-/activities/{resource-path}/date/{date}/{period}.json | Get Activity Time Series FitbitWebApi.ActivityTimeSeriesApi | getActivitiesResourceByDateRange | GET /1/user/-/activities/{resource-path}/date/{base-date}/{end-date}.json | Get Activity Resource by Date Range FitbitWebApi.ActivityTimeSeriesApi | getActivitiesTrackerResourceByDatePeriod | GET /1/user/-/activities/tracker/{resource-path}/date/{date}/{period}.json | Get Activity Time Series FitbitWebApi.ActivityTimeSeriesApi | getActivitiesTrackerResourceByDateRange | GET /1/user/-/activities/tracker/{resource-path}/date/{base-date}/{end-date}.json | Get Activity Tracker Resource by Date Range Time Series FitbitWebApi.AuthApi | introspect | POST /1.1/oauth2/introspect | Retrieve the active state of an OAuth 2.0 token FitbitWebApi.AuthApi | oauthToken | POST /oauth2/token | Get OAuth 2 access token FitbitWebApi.BodyAndWeightApi | addBodyFatLog | POST /1/user/-/body/log/fat.json | Log Body Fat FitbitWebApi.BodyAndWeightApi | addWeightLog | POST /1/user/-/body/log/weight.json | Log Weight FitbitWebApi.BodyAndWeightApi | deleteBodyFatLog | DELETE /1/user/-/body/log/fat/{body-fat-log-id}.json | Delete Body Fat Log FitbitWebApi.BodyAndWeightApi | deleteWeightLog | DELETE /1/user/-/body/log/weight/{body-weight-log-id}.json | Delete Weight Log FitbitWebApi.BodyAndWeightApi | getBodyFatByDate | GET /1/user/-/body/log/fat/date/{date}.json | Get Body Fat Logs FitbitWebApi.BodyAndWeightApi | getBodyFatByDatePeriod | GET /1/user/-/body/log/fat/date/{date}/{period}.json | Get Body Fat Logs FitbitWebApi.BodyAndWeightApi | getBodyFatByDateRange | GET /1/user/-/body/log/fat/date/{base-date}/{end-date}.json | Get Body Fat Logs FitbitWebApi.BodyAndWeightApi | getBodyGoals | GET /1/user/-/body/log/{goal-type}/goal.json | Get Body Goals FitbitWebApi.BodyAndWeightApi | getWeightByDate | GET /1/user/-/body/log/weight/date/{date}.json | Get Weight Logs FitbitWebApi.BodyAndWeightApi | getWeightByDatePeriod | GET /1/user/-/body/log/weight/date/{date}/{period}.json | Get Body Fat Logs FitbitWebApi.BodyAndWeightApi | getWeightByDateRange | GET /1/user/-/body/log/weight/date/{base-date}/{end-date}.json | Get Body Fat Logs FitbitWebApi.BodyAndWeightApi | updateBodyFatGoal | POST /1/user/-/body/log/fat/goal.json | Update Body Fat Goal FitbitWebApi.BodyAndWeightApi | updateWeightGoal | POST /1/user/-/body/log/weight/goal.json | Update Weight Goal FitbitWebApi.BodyAndWeightTimeSeriesApi | getBodyResourceByDatePeriod | GET /1/user/-/body/{resource-path}/date/{date}/{period}.json | Get Body Time Series FitbitWebApi.BodyAndWeightTimeSeriesApi | getBodyResourceByDateRange | GET /1/user/-/body/{resource-path}/date/{base-date}/{end-date}.json | Get Body Time Series FitbitWebApi.DevicesApi | addAlarms | POST /1/user/-/devices/tracker/{tracker-id}/alarms.json | Add Alarm FitbitWebApi.DevicesApi | deleteAlarms | DELETE /1/user/-/devices/tracker/{tracker-id}/alarms/{alarm-id}.json | Delete Alarm FitbitWebApi.DevicesApi | getAlarms | GET /1/user/-/devices/tracker/{tracker-id}/alarms.json | Get Alarms FitbitWebApi.DevicesApi | getDevices | GET /1/user/-/devices.json | Get Devices FitbitWebApi.DevicesApi | updateAlarms | POST /1/user/-/devices/tracker/{tracker-id}/alarms/{alarm-id}.json | Update Alarm FitbitWebApi.FoodAndWaterApi | addFavoriteFood | POST /1/user/-/foods/log/favorite/{food-id}.json | Add Favorite Food FitbitWebApi.FoodAndWaterApi | addFoods | POST /1/user/-/foods.json | Create Food FitbitWebApi.FoodAndWaterApi | addFoodsLog | POST /1/user/-/foods/log.json | Log Food FitbitWebApi.FoodAndWaterApi | addMeal | POST /1/user/-/meals.json | Create Meal FitbitWebApi.FoodAndWaterApi | addUpdateFoodsGoal | POST /1/user/-/foods/log/goal.json | Update Food Goal FitbitWebApi.FoodAndWaterApi | addUpdateWaterGoal | POST /1/user/-/foods/log/water/goal.json | Update Water Goal FitbitWebApi.FoodAndWaterApi | addWaterLog | POST /1/user/-/foods/log/water.json | Log Water FitbitWebApi.FoodAndWaterApi | deleteFavoriteFood | DELETE /1/user/-/foods/log/favorite/{food-id}.json | Delete Favorite Food FitbitWebApi.FoodAndWaterApi | deleteFoods | DELETE /1/user/-/foods/{food-id}.json | Delete Custom Food FitbitWebApi.FoodAndWaterApi | deleteFoodsLog | DELETE /1/user/-/foods/log/{food-log-id}.json | Delete Food Log FitbitWebApi.FoodAndWaterApi | deleteMeal | DELETE /1/user/-/meals/{meal-id}.json | Delete Meal FitbitWebApi.FoodAndWaterApi | deleteWaterLog | DELETE /1/user/-/foods/log/water/{water-log-id}.json | Delete Water Log FitbitWebApi.FoodAndWaterApi | getFavoriteFoods | GET /1/user/-/foods/log/favorite.json | Get Favorite Foods FitbitWebApi.FoodAndWaterApi | getFoodsByDate | GET /1/user/-/foods/log/date/{date}.json | Get Food Logs FitbitWebApi.FoodAndWaterApi | getFoodsGoal | GET /1/user/-/foods/log/goal.json | Get Food Goals FitbitWebApi.FoodAndWaterApi | getFoodsInfo | GET /1/foods/{food-id}.json | Get Food FitbitWebApi.FoodAndWaterApi | getFoodsList | GET /1/foods/search.json | Search Foods FitbitWebApi.FoodAndWaterApi | getFoodsLocales | GET /1/foods/locales.json | Get Food Locales FitbitWebApi.FoodAndWaterApi | getFoodsUnits | GET /1/foods/units.json | Get Food Units FitbitWebApi.FoodAndWaterApi | getFrequentFoods | GET /1/user/-/foods/log/frequent.json | Get Frequent Foods FitbitWebApi.FoodAndWaterApi | getMeals | GET /1/user/-/meals.json | Get Meals FitbitWebApi.FoodAndWaterApi | getRecentFoods | GET /1/user/-/foods/log/recent.json | Get Recent Foods FitbitWebApi.FoodAndWaterApi | getWaterByDate | GET /1/user/-/foods/log/water/date/{date}.json | Get Water Logs FitbitWebApi.FoodAndWaterApi | getWaterGoal | GET /1/user/-/foods/log/water/goal.json | Get Water Goal FitbitWebApi.FoodAndWaterApi | updateMeal | POST /1/user/-/meals/{meal-id}.json | Edit Meal FitbitWebApi.FoodAndWaterApi | updateWaterLog | POST /1/user/-/foods/log/water/{water-log-id}.json | Update Water Log FitbitWebApi.FoodAndWaterTimeSeriesApi | getFoodsByDateRange | GET /1/user/-/foods/log/{resource-path}/date/{base-date}/{end-date}.json | Get Food or Water Time Series FitbitWebApi.FoodAndWaterTimeSeriesApi | getFoodsResourceByDatePeriod | GET /1/user/-/foods/log/{resource-path}/date/{date}/{period}.json | Get Food or Water Time Series FitbitWebApi.FriendsApi | createFriendsInvitations | POST /1.1/user/-/friends/invitations | Invite Friends FitbitWebApi.FriendsApi | getFriends | GET /1.1/user/-/friends.json | Get Friends FitbitWebApi.FriendsApi | getFriendsInvitations | GET /1.1/user/-/friends/invitations.json | Get Friend Invitations FitbitWebApi.FriendsApi | getFriendsLeaderboard | GET /1.1/user/-/leaderboard/friends.json | Get Friends Leaderboard FitbitWebApi.FriendsApi | respondFriendsInvitation | POST /1.1/user/-/friends/invitations/{from-user-id} | Respond to Friend Invitation FitbitWebApi.HeartRateIntradayTimeSeriesApi | getHeartByDateIntraday | GET /1/user/-/activities/heart/date/{date}/1d/{detail-level}.json | Get Heart Rate Intraday Time Series FitbitWebApi.HeartRateIntradayTimeSeriesApi | getHeartByDateRangeIntraday | GET /1/user/-/activities/heart/date/{date}/{end-date}/{detail-level}.json | Get Heart Rate Intraday Time Series FitbitWebApi.HeartRateIntradayTimeSeriesApi | getHeartByDateRangeTimestampIntraday | GET /1/user/-/activities/heart/date/{date}/{end-date}/{detail-level}/time/{start-time}/{end-time}.json | Get Heart Rate Intraday Time Series FitbitWebApi.HeartRateIntradayTimeSeriesApi | getHeartByDateTimestampIntraday | GET /1/user/-/activities/heart/date/{date}/1d/{detail-level}/time/{start-time}/{end-time}.json | Get Heart Rate Intraday Time Series FitbitWebApi.HeartRateTimeSeriesApi | getHeartByDatePeriod | GET /1/user/-/activities/heart/date/{date}/{period}.json | Get Heart Rate Time Series FitbitWebApi.HeartRateTimeSeriesApi | getHeartByDateRange | GET /1/user/-/activities/heart/date/{base-date}/{end-date}.json | Get Heart Rate Time Series FitbitWebApi.SleepApi | addSleep | POST /1.2/user/-/sleep.json | Log Sleep FitbitWebApi.SleepApi | deleteSleep | DELETE /1.2/user/-/sleep/{log-id}.json | Delete Sleep Log FitbitWebApi.SleepApi | getSleepByDate | GET /1.2/user/-/sleep/date/{date}.json | Get Sleep Log FitbitWebApi.SleepApi | getSleepByDateRange | GET /1.2/user/-/sleep/date/{base-date}/{end-date}.json | Get Sleep Logs by Date Range FitbitWebApi.SleepApi | getSleepGoal | GET /1.2/user/-/sleep/goal.json | Get Sleep Goal FitbitWebApi.SleepApi | getSleepList | GET /1.2/user/-/sleep/list.json | Get Sleep Logs List FitbitWebApi.SleepApi | updateSleepGoal | POST /1.2/user/-/sleep/goal.json | Update Sleep Goal FitbitWebApi.SubscriptionsApi | addSubscriptions | POST /1/user/-/{collection-path}/apiSubscriptions/{subscription-id}.json | Add a Subscription FitbitWebApi.SubscriptionsApi | deleteSubscriptions | DELETE /1/user/-/{collection-path}/apiSubscriptions/{subscription-id}.json | Delete a Subscription FitbitWebApi.SubscriptionsApi | getSubscriptionsList | GET /1/user/-/{collection-path}/apiSubscriptions.json | Get a List of Subscriptions FitbitWebApi.UserApi | getBadges | GET /1/user/-/badges.json | Get Badges FitbitWebApi.UserApi | getProfile | GET /1/user/-/profile.json | Get Profile FitbitWebApi.UserApi | updateProfile | POST /1/user/-/profile.json | Update Profile
Documentation for Models
Documentation for Authorization
oauth2
- Type: OAuth
- Flow: implicit
- Authorization URL: https://www.fitbit.com/oauth2/authorize
- Scopes:
- activity: Activity data and exercise log related features, such as steps, distance, calories burned, and active minutes
- heartrate: Continuous heart rate data and related analysis
- location: GPS and other location data
- nutrition: Calorie consumption and nutrition related features, such as food/water logging, goals, and plans
- profile: Basic user information
- settings: User account and device settings, such as alarms
- sleep: Sleep logs and related sleep analysis
- social: Friend-related features, such as friend list, invitations, and leaderboard
- weight: Weight and related information, such as body mass index, body fat percentage, and goals