static void Main(string[] args) { //Example of getting the Auth credentials for the first time by directoring the //user to the fitbit site to get a PIN. var consumerKey = "YOUR_CONSUMER_KEY_HERE"; var consumerSecret = "YOUR_CONSUMER_SECRET_HERE"; var requestTokenUrl = "http://api.fitbit.com/oauth/request_token"; var accessTokenUrl = "http://api.fitbit.com/oauth/access_token"; var authorizeUrl = "http://www.fitbit.com/oauth/authorize"; var a = new Authenticator(consumerKey, consumerSecret,requestTokenUrl,accessTokenUrl,authorizeUrl); RequestToken token = a.GetRequestToken(); var url = a.GenerateAuthUrlFromRequestToken(token, false); Process.Start(url); Console.WriteLine("Enter the verification code from the website"); var pin = Console.ReadLine(); var credentials = a.GetAuthCredentialFromPin(pin, token); //If you already have your credentials stored then rather than getting the users PIN again //you could just start here var fitbit = new FitbitClient(consumerKey, consumerSecret, credentials.AuthToken, credentials.AuthTokenSecret); var profile = fitbit.GetUserProfile(); Console.WriteLine("Your last weight was {0}",profile.Weight); Console.ReadLine(); }
private void button2_Click(object sender, EventArgs e) { //Example of getting the Auth credentials for the first time by directoring the //user to the fitbit site to get a PIN. // GitHub test from Andy var consumerKey = "b3d888281c9b4e098c26c6d1ce4e9d57"; var consumerSecret = "dc6f84c589c341789967b57e83084572"; var requestTokenUrl = "http://api.fitbit.com/oauth/request_token"; var accessTokenUrl = "http://api.fitbit.com/oauth/access_token"; var authorizeUrl = "http://www.fitbit.com/oauth/authorize"; var a = new Authenticator(consumerKey, consumerSecret, requestTokenUrl, accessTokenUrl, authorizeUrl); var url = a.GetAuthUrlToken(); System.Diagnostics.Process.Start(url); Console.WriteLine("Enter the verification code from the website"); var pin = verificationCodeTextBox.Text; var credentials = a.GetAuthCredentialFromPin(pin); //If you already have your credentials stored then rather than getting the users PIN again //you could just start here var fitbit = new FitbitClient(consumerKey, consumerSecret, credentials.AuthToken, credentials.AuthTokenSecret); var profile = fitbit.GetUserProfile(); Console.WriteLine("Your last weight was {0}", profile.Weight); Console.ReadLine(); }
public HomeController() { var creds = (CloudConfigurationManager.GetSetting("environment") == "local") ? CredentialParser.ParseFromFile(@"C:\Development\fitbitcreds.json") : CredentialParser.ParseFromConfiguration(); _client = new FitbitClient(creds.ConsumerKey, creds.ConsumerSecret, creds.AuthToken, creds.AuthTokenSecret); }
/// <summary> /// Reads data from fitbit API. /// Limit is 150 API calls per hour, per user. -> 2016-02-05 /// </summary> /// <returns>true if operation completed successfuly</returns> public bool Read() { bool success = false; try { _logger.InfoFormat("Starting data collection for device: {0} ",_deviceElement.Name); DateTime startTime=DateTime.Today-TimeSpan.FromDays(30); DateTime endTime=DateTime.Now; string authToken = (string)_deviceElement.Attributes["AuthToken"].GetValue().Value; string authTokenSecret = (string)_deviceElement.Attributes["AuthTokenSecret"].GetValue().Value; // for debugging when no internet access //if (Settings.Advanced.Default.NoConnectionSImulateData) // return true; var fitBitClient = new FitbitClient(consumerKey, consumerSecret, authToken, authTokenSecret); // user profile is not used for the time being // var userProfile = fitBitClient.GetUserProfile(); // avtivity // --- active hours is calculated - so not here AFElement activityElement = _deviceElement.Elements["Activity"]; CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.CaloriesOut, "Calories"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.DistanceTracker, "Distance"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.MinutesFairlyActiveTracker, "Minutes fairly active"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.MinutesLightlyActiveTracker, "Minutes lightly active"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.MinutesSedentaryTracker, "Minutes sedentary"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.MinutesVeryActiveTracker, "Minutes very active"); CollectAndSaveData(fitBitClient, startTime, endTime, activityElement, TimeSeriesResourceType.StepsTracker, "Steps"); // sleep AFElement sleepElement = _deviceElement.Elements["Sleep"]; CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.AwakeningsCount, "Awakenings count"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.MinutesAsleep, "Hours asleep"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.MinutesAfterWakeup, "Minutes after wakeup"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.MinutesAwake, "Minutes awake"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.MinutesToFallAsleep, "Minutes to fall asleep"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.SleepEfficiency, "Sleep efficiency"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.TimeEnteredBed, "Time entered bed"); CollectAndSaveData(fitBitClient, startTime, endTime, sleepElement, TimeSeriesResourceType.TimeInBed, "Time spent in bed"); _logger.InfoFormat("Completed data collection for device: {0} - read {1} values.", _deviceElement.Name,valuesCount); success = true; } catch (Exception) { throw; } return success; }
public FitbitUser(string consumerKey, string consumerSecret, string authToken, string authTokenSecret, AFElement element, bool isNew) { ApiClient = new FitbitClient(consumerKey, consumerSecret, authToken, authTokenSecret); UserElement = element; IsNew = isNew; }
static void Main(string[] args) { var credentials = GetLoginCredentials(); var fitbitClient = new FitbitClient(CONSUMER_KEY, CONSUMER_SECRET, credentials.AuthToken, credentials.AuthTokenSecret); var profile = fitbitClient.GetUserProfile(); Activity dayActivity = fitbitClient.GetDayActivity(DateTime.Today); Console.ReadLine(); }
public TestsBase() { RestClient restClient = new RestClient("https://api.fitbit.com"); client = new FitbitClient(Configuration.ConsumerKey, Configuration.ConsumerSecret, Configuration.AuthToken, Configuration.AuthTokenSecret, restClient); }
public string TestTimeSeries() { FitbitClient client = new FitbitClient(ConfigurationManager.AppSettings["FitbitConsumerKey"], ConfigurationManager.AppSettings["FitbitConsumerSecret"], Session["FitbitAuthToken"].ToString(), Session["FitbitAuthTokenSecret"].ToString()); var results = client.GetTimeSeries(TimeSeriesResourceType.ActiveScore, DateTime.UtcNow.AddDays(-7), DateTime.UtcNow); string sOutput = ""; foreach (var result in results.DataList) { sOutput += result.DateTime.ToString() + " - " + result.Value.ToString(); } return sOutput; }
static void Main(string[] args) { //Example of getting the Auth credentials for the first time by directoring the //user to the fitbit site to get a PIN. var credentials = LoadCredentials(); if (credentials == null) { credentials = Authenticate(); SaveCredentials(credentials); } var fitbit = new FitbitClient(consumerKey, consumerSecret, credentials.AuthToken, credentials.AuthTokenSecret); var profile = fitbit.GetUserProfile(); Console.WriteLine("Your last weight was {0}", profile.Weight); Console.ReadLine(); }
public void Returns_content_if_response_is_OK() { string content = File.ReadAllText(SampleData.PathFor("DateActivity.txt")); var mock = new Mock<IRestClient>(); var deserializer = new RestSharp.Deserializers.XmlDeserializer(); deserializer.RootElement = "summary"; mock.Setup(x => x.Execute<ActivitySummary>(It.IsAny<IRestRequest>())) .Returns(new RestResponse<ActivitySummary> { StatusCode = HttpStatusCode.OK, Content = content, Data = deserializer.Deserialize<ActivitySummary>(new RestResponse() { Content = content }) }); //var client = new GuidClient(mock.Object); FitbitClient fitbitClient = new FitbitClient(mock.Object); var result = fitbitClient.GetDayActivitySummary(DateTime.Now); Assert.IsNotNull(result); Assert.AreEqual(12345, result.Steps); }
private void FitBitLogin_FormClosed(object sender, FormClosedEventArgs e) { FitbitClient client = new FitbitClient(dash.consumerKey, dash.consumerSecret, dash.oauth_token, dash.oauth_token_secret); List<UserProfile> profiles = client.GetFriends(); dash.loggedInUser = client.GetUserProfile(dash.user_id); profiles.Add(dash.loggedInUser); foreach (UserProfile temp in profiles) { foreach (DictionaryEntry tempUser in dash.users) { User theUser = (User)tempUser.Value; if (theUser.firstName.Equals(temp.DisplayName.ToString())) { theUser.id = temp.EncodedId.ToString(); DateTime today = DateTime.Today; ActivitySummary summary = client.GetSpecificUserDayActivitySummary(theUser.id, today); theUser.statistics["Steps Taken"] = summary.Steps; theUser.statistics["Stairs Climbed"] = summary.Floors; theUser.statistics["Calories Burned"] = summary.CaloriesOut; break; } } } }
public IList<View.VParamType> OnOperationInvoke(string roleName, String opName, IList<View.VParamType> parameters) { List<View.VParamType> retVals = new List<View.VParamType>(); FitbitClient client = new FitbitClient(consumerKey, consumerSecret, accessToken, accessSecret); switch (opName) { case RoleFitbitUltra.OpGetActiveScore: { DateTime activityDate = (DateTime)parameters[0].Value(); ActivitySummary data = client.GetDayActivitySummary(activityDate); int result = data.ActiveScore; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetCaloriesOut: { DateTime activityDate = (DateTime)parameters[0].Value(); ActivitySummary data = client.GetDayActivitySummary(activityDate); int result = data.CaloriesOut; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetDistance: { DateTime activityDate = (DateTime)parameters[0].Value(); ActivitySummary data = client.GetDayActivitySummary(activityDate); float result = data.Distances.Sum(z => z.Distance); retVals.Add(new ParamType(ParamType.SimpleType.binary, "float", result, "result")); } break; case RoleFitbitUltra.OpGetSteps: { DateTime activityDate = (DateTime)parameters[0].Value(); ActivitySummary data = client.GetDayActivitySummary(activityDate); int result = data.Steps; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetStepsGoal: { DateTime activityDate = (DateTime)parameters[0].Value(); Activity data = client.GetDayActivity(activityDate); int result = data.Goals.Steps; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetTotalMinutesAsleep: { DateTime activityDate = (DateTime)parameters[0].Value(); SleepSummary data = client.GetDaySleepSummary(activityDate); int result = data.TotalMinutesAsleep; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetTotalSleepRecords: { DateTime activityDate = (DateTime)parameters[0].Value(); SleepSummary data = client.GetDaySleepSummary(activityDate); int result = data.TotalSleepRecords; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetTotalTimeInBed: { DateTime activityDate = (DateTime)parameters[0].Value(); SleepSummary data = client.GetDaySleepSummary(activityDate); int result = data.TotalTimeInBed; retVals.Add(new ParamType(ParamType.SimpleType.integer, "int", result, "result")); } break; case RoleFitbitUltra.OpGetDevicePresence: { List<Fitbit.Models.Device> data = client.GetDevices(); bool result = data.Where(z => z.Type == DeviceType.Tracker).FirstOrDefault().LastSyncTime >= DateTime.Now.AddMinutes(-15); retVals.Add(new ParamType(ParamType.SimpleType.binary, "bool", result, "result")); } break; case RoleFitbitUltra.OpGetHasRecentActivity: { Activity data = client.GetDayActivity(DateTime.Now); bool result = data.Activities.Where(z => z.HasStartTime == true && Convert.ToDateTime(z.StartTime).AddSeconds(z.Duration / 1000) >= DateTime.Now.AddMinutes(-30)).Count() > 0; retVals.Add(new ParamType(ParamType.SimpleType.binary, "bool", result, "result")); } break; default: logger.Log("Invalid operation {0}", opName); break; } return retVals; }
/* //example using the direct API call getting all the individual logs public ActionResult MonthFat(string id) { DateTime dateStart = Convert.ToDateTime(id); FitbitClient client = GetFitbitClient(); Fat fat = client.GetFat(dateStart, DateRangePeriod.OneMonth); if (fat == null || fat.FatLogs == null) //succeeded but no records { fat = new Fat(); fat.FatLogs = new List<FatLog>(); } return View(fat); } //example using the time series, one per day public ActionResult LastYearFat() { FitbitClient client = GetFitbitClient(); TimeSeriesDataList fatSeries = client.GetTimeSeries(TimeSeriesResourceType.Fat, DateTime.UtcNow, DateRangePeriod.OneYear); return View(fatSeries); } //example using the direct API call getting all the individual logs public ActionResult MonthWeight(string id) { DateTime dateStart = Convert.ToDateTime(id); FitbitClient client = GetFitbitClient(); Weight weight = client.GetWeight(dateStart, DateRangePeriod.OneMonth); if (weight == null || weight.Weights == null) //succeeded but no records { weight = new Weight(); weight.Weights = new List<WeightLog>(); } return View(weight); } //example using the time series, one per day public ActionResult LastYearWeight() { FitbitClient client = GetFitbitClient(); TimeSeriesDataList weightSeries = client.GetTimeSeries(TimeSeriesResourceType.Weight, DateTime.UtcNow, DateRangePeriod.OneYear); return View(weightSeries); } /// <summary> /// This requires the Fitbit staff approval of your app before it can be called /// </summary> /// <returns></returns> public string TestIntraDay() { FitbitClient client = new FitbitClient(ConfigurationManager.AppSettings["FitbitConsumerKey"], ConfigurationManager.AppSettings["FitbitConsumerSecret"], Session["FitbitAuthToken"].ToString(), Session["FitbitAuthTokenSecret"].ToString()); IntradayData data = client.GetIntraDayTimeSeries(IntradayResourceType.Steps, new DateTime(2012, 5, 28, 11, 0, 0), new TimeSpan(1, 0, 0)); string result = ""; foreach (IntradayDataValues intraData in data.DataSet) { result += intraData.Time.ToShortTimeString() + " - " + intraData.Value + Environment.NewLine; } return result; } */ private FitbitClient GetFitbitClient(string bearerToken, string refreshToken) { OAuth2Authorization authorization = new OAuth2Authorization(bearerToken, refreshToken); FitbitClient client = new FitbitClient(authorization); return client; }
public ActionResult LastWeekActiveScore() { FitbitClient client = new FitbitClient(ConfigurationManager.AppSettings["FitbitConsumerKey"], ConfigurationManager.AppSettings["FitbitConsumerSecret"], Session["FitbitAuthToken"].ToString(), Session["FitbitAuthTokenSecret"].ToString()); TimeSeriesDataList results = client.GetTimeSeries(TimeSeriesResourceType.ActiveScore, DateTime.UtcNow.AddDays(-7), DateTime.UtcNow); return View(results); }
private void refreshFitbitApi() { if (leaderboardComboBox.SelectedItem == null) { MessageBox.Show("Please select a time frame from the dropdown."); return; } FitbitClient client = new FitbitClient(consumerKey, consumerSecret, oauth_token, oauth_token_secret); List<UserProfile> profiles = client.GetFriends(); profiles.Add(loggedInUser); DateTime endDate = DateTime.Today; DateTime startDate = DateTime.Today; if (leaderboardComboBox.SelectedItem.Equals("Day")) { DateTime today = DateTime.Today; foreach (UserProfile temp in profiles) { foreach (DictionaryEntry tempUser in users) { User theUser = (User)tempUser.Value; if (theUser.displayName.Equals(temp.DisplayName.ToString())) { theUser.id = temp.EncodedId.ToString(); ActivitySummary summary = client.GetSpecificUserDayActivitySummary(theUser.id, today); theUser.statistics["Steps Taken"] = summary.Steps; theUser.statistics["Stairs Climbed"] = summary.Floors; theUser.statistics["Calories Burned"] = summary.CaloriesOut; break; } } } return; } else if (leaderboardComboBox.SelectedItem.Equals("Week")) { endDate = DateTime.Today; startDate = endDate.Subtract(TimeSpan.FromDays(6)); } else if (leaderboardComboBox.SelectedItem.Equals("Month")) { endDate = DateTime.Today; startDate = endDate.Subtract(TimeSpan.FromDays(29)); } else if (leaderboardComboBox.SelectedItem.Equals("Competition")) { startDate = startDateTimePicker.Value; endDate = DateTime.Today; } foreach (UserProfile temp in profiles) { foreach (DictionaryEntry tempUser in users) { User theUser = (User)tempUser.Value; if (theUser.displayName.Equals(temp.DisplayName.ToString())) { theUser.id = temp.EncodedId.ToString(); TimeSeriesDataListInt steps = client.GetTimeSeriesInt(TimeSeriesResourceType.StepsTracker, startDate, endDate, theUser.id); TimeSeriesDataListInt floors = client.GetTimeSeriesInt(TimeSeriesResourceType.FloorsTracker, startDate, endDate, theUser.id); TimeSeriesDataListInt calories= client.GetTimeSeriesInt(TimeSeriesResourceType.CaloriesOutTracker, startDate, endDate, theUser.id); int totalSteps = 0, totalFloors = 0, totalCalories = 0; for (int i = 0; i < steps.DataList.Count; i++) { totalSteps += steps.DataList[i].Value; totalFloors += floors.DataList[i].Value; totalCalories += calories.DataList[i].Value; } theUser.statistics["Steps Taken"] = totalSteps; theUser.statistics["Stairs Climbed"] = totalFloors; theUser.statistics["Calories Burned"] = totalCalories; break; } } } }
/// <summary> /// This requires the Fitbit staff approval of your app before it can be called /// </summary> /// <returns></returns> public string TestIntraDay() { FitbitClient client = new FitbitClient(ConfigurationManager.AppSettings["FitbitConsumerKey"], ConfigurationManager.AppSettings["FitbitConsumerSecret"], Session["FitbitAuthToken"].ToString(), Session["FitbitAuthTokenSecret"].ToString()); IntradayData data = client.GetIntraDayTimeSeries(IntradayResourceType.Steps, new DateTime(2012,5,28,11,0,0), new TimeSpan(1,0,0)); string result = ""; foreach (IntradayDataValues intraData in data.DataSet) { result += intraData.Time.ToShortTimeString() + " - " + intraData.Value + Environment.NewLine; } return result; }
private void CollectAndSaveData(FitbitClient fitBitClient,DateTime startTime,DateTime endTime, AFElement deviceElement, TimeSeriesResourceType type,string attributeName) { var fitBitData = fitBitClient.GetTimeSeries(type, startTime, endTime); AFValues values = Helpers.FitBitHelpers.ConvertToAFValues(fitBitData, type, deviceElement, attributeName); SharedData.DataQueue.Enqueue(values); valuesCount += values.Count; }
private FitbitClient GetFitbitClient() { FitbitClient client = new FitbitClient(ConfigurationManager.AppSettings["FitbitConsumerKey"], ConfigurationManager.AppSettings["FitbitConsumerSecret"], Session["FitbitAuthToken"].ToString(), Session["FitbitAuthTokenSecret"].ToString()); return client; }