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]}]
}