@researchable/fitbit-web-api

0.0.1 • Public • Published

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:

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

Readme

Keywords

none

Package Sidebar

Install

npm i @researchable/fitbit-web-api

Weekly Downloads

1

Version

0.0.1

License

MIT

Unpacked Size

530 kB

Total Files

54

Last publish

Collaborators

  • andoemerencia
  • frbl
  • researchable-bot