Fitgem v0.3.6

On October 14th Fitbit announced the latest version of their API, including support for features of their new Fitbit Ultra tracker hardware.

The rubygem for connecting to the Fitbit API, Fitgem, has now been updated to 0.3.6 to support the new functionality.

The source is on github and the latest version has been pushed to rubygems.org. Please don't hesitate to log any issues on github.

Updates

Floors and elevation info from activities_on_date

pp client.activities_on_date("2011-10-24")
{"activities"=>
  [{"activityId"=>2130,
    "activityParentId"=>2130,
    "activityParentName"=>
     "Weight lifting (free, nautilus or universal-type), light or moderate effort, light workout, general",
    "calories"=>228,
    "description"=>"",
    "duration"=>3600000,
    "hasStartTime"=>true,
    "isFavorite"=>true,
    "logId"=>2136964,
    "name"=>
     "Weight lifting (free, nautilus or universal-type), light or moderate effort, light workout, general",
    "startTime"=>"16:15"}],
 "goals"=>
  {"activeScore"=>1000,
   "caloriesOut"=>2911,
   "distance"=>5,
   "floors"=>10,
   "steps"=>10000},
 "summary"=>
  {"activeScore"=>495,
   "activityCalories"=>927,
   "caloriesOut"=>2458,
   "distances"=>
    [{"activity"=>"total", "distance"=>2.07},
     {"activity"=>"tracker", "distance"=>2.07},
     {"activity"=>"loggedActivities", "distance"=>0},
     {"activity"=>"veryActive", "distance"=>0.3},
     {"activity"=>"moderatelyActive", "distance"=>0.68},
     {"activity"=>"lightlyActive", "distance"=>1.09},
     {"activity"=>"sedentaryActive", "distance"=>0},
     {"activity"=>
       "Weight lifting (free, nautilus or universal-type), light or moderate effort, light workout, general",
      "distance"=>0}],
   "elevation"=>90,
   "fairlyActiveMinutes"=>118,
   "floors"=>9,
   "lightlyActiveMinutes"=>102,
   "marginalCalories"=>562,
   "sedentaryMinutes"=>1210,
   "steps"=>4590,
   "veryActiveMinutes"=>10}
}

Floors and elevation info from data_by_time_range

pp client.data_by_time_range("/activities/log/floors", {:base_date => "2011-10-24", :period => "1d"})
{"activities-log-floors"=>[{"dateTime"=>"2011-10-24", "value"=>"9"}]}

Food Goals now available through the foods_on_date method

pp client.foods_on_date("2011-10-24")
{"foods"=>[],
 "goals"=>{"calories"=>2911},
 "summary"=>
  {"calories"=>0,
   "carbs"=>0,
   "fat"=>0,
   "fiber"=>0,
   "protein"=>0,
   "sodium"=>0,
   "water"=>0}
}

Device info now returns lastSyncTime

pp client.devices
[{"battery"=>"Full",
  "id"=>*****,
  "lastSyncTime"=>"2011-10-25T09:54:40.000",
  "type"=>"TRACKER"}]

Get details on a food with new method food_info

There is a new method that will fetch detailed food information given a food ID. Food IDs are generally retrieved by searching for a food using find_food.

Get food info for an apple

pp client.food_info 20711
{"food"=>
  {"accessLevel"=>"PUBLIC",
   "brand"=>"Shoney's",
   "calories"=>81,
   "defaultServingSize"=>5,
   "defaultUnit"=>{"id"=>226, "name"=>"oz", "plural"=>"oz"},
   "foodId"=>20711,
   "name"=>"Apple",
   "units"=>[226, 180, 147, 389]}
}

Calories now returned in find_food results

pp client.find_food("GoLean Raisin Bran Crunch Cereal")
{"foods"=>
  [{"accessLevel"=>"PUBLIC",
    "brand"=>"Kellogg's",
    "calories"=>110,
    "defaultServingSize"=>1,
    "defaultUnit"=>{"id"=>17, "name"=>"bar", "plural"=>"bars"},
    "foodId"=>20942,
    "name"=>"Cereal Bar, Raisin Bran Crunch",
    "units"=>[17]},
   {"accessLevel"=>"PUBLIC",
    "brand"=>"Safeway",
    "calories"=>230,
    "defaultServingSize"=>1,
    "defaultUnit"=>{"id"=>304, "name"=>"serving", "plural"=>"servings"},
    "foodId"=>79051,
    "name"=>"Raisin Bran Crunch Cereal",
    "units"=>[304, 91, 256, 279]}]
}
blog comments powered by Disqus