public WithingsClientTests() { _httpMessageHandler = new Mock <HttpMessageHandler>(); _capturedRequest = new HttpRequestMessage(); _httpClient = new HttpClient(_httpMessageHandler.Object); _config = new Mock <IConfig>(); _config.Setup(x => x.WithingsClientId).Returns(withingsClientId); _config.Setup(x => x.WithingsClientSecret).Returns(withingsClientSecret); _config.Setup(x => x.WithingsAccountBaseUrl).Returns(baseAccountUrl); _config.Setup(x => x.WithingsApiBaseUrl).Returns(baseApiUrl); _config.Setup(x => x.WithingsRedirectUrl).Returns(redirectUrl); _withingsClient = new WithingsClient(_httpClient, _config.Object); }
public async Task <ActionResult> AccessTokenFlow() { //var accessToken = Request.QueryString["oauth_token"].ToString(); //List<KeyValuePair<string, string>> parameters = new List<KeyValuePair<string, string>>(); //parameters.Add(new KeyValuePair<string, string>("oauth_token", accessToken)); var appCredentials = new WithingsAppCredentials() { ConsumerKey = ConfigurationManager.AppSettings["WithingsConsumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"] }; //saving consumerKey and Secret into session Session["AppCredentials"] = appCredentials; //oAuthVerifier taken from url to string to be made into a Key Value pair var oAuthVerifier = Request.QueryString["oauth_verifier"].ToString(); List <KeyValuePair <string, string> > parameters = new List <KeyValuePair <string, string> >(); parameters.Add(new KeyValuePair <string, string>("oauth_verifier", oAuthVerifier)); //Using AppCredentials in session into instanticiating WithingsAppAUthenticator var withingsAppConstructor = new WithingsAppAuthenticator((WithingsAppCredentials)Session["AppCredentials"]); //Calling request token from previous method to inject into new AccessToken Call var requestTokenSession = Session["requestToken"] as RequestToken; //Awaiting Method from WithingsAppAuthenticator Class to return AccessToken accessTokenResponse = await withingsAppConstructor.AccessTokenFlow(requestTokenSession, oAuthVerifier); Session["accessToken"] = accessTokenResponse; string userId = Request.QueryString["userid"]; Session["UserId"] = userId; WithingsClient client = new WithingsClient(appCredentials, accessTokenResponse); return(View("AccessTokenFlow")); }
public async Task <ActionResult> GetWithingsClient(string currentDate, string userid) { var accessToken = Session["accessToken"] as AccessToken; var appCredentials = new WithingsAppCredentials() { ConsumerKey = ConfigurationManager.AppSettings["WithingsConsumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"] }; var userId = Session["UserId"].ToString(); string date = DateTime.Now.ToString("yyyy-MM-dd"); WithingsClient client = new WithingsClient(appCredentials, accessToken); var response = await client.GetDayActivityAsync(date, userId); ViewBag.ResponseData = response; return(View("GetWithingsClient")); }
public async Task <ActionResult> GetWithingsBodyMeas(string userid, string devType) { var accessToken = Session["accessToken"] as AccessToken; var appCredentials = new WithingsAppCredentials() { ConsumerKey = ConfigurationManager.AppSettings["WithingsConsumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["WithingsConsumerSecret"] }; var userId = Session["UserId"].ToString(); var deviceType = "4"; WithingsClient client = new WithingsClient(appCredentials, accessToken); var response = await client.GetBodyMeasureAsync(userId, deviceType); ViewBag.BloodPressueResponse = response; return(View("GetWithingsBodyMeas")); }
public IndexModule() { var _credentials = new OAuth1Credentials(); _credentials.SetCallbackUrl(ConfigurationManager.AppSettings["WithingsCallbackUrl"]); _credentials.SetConsumerProperties(ConfigurationManager.AppSettings["WithingsConsumerKey"], ConfigurationManager.AppSettings["WithingsConsumerSecret"]); _credentials.SetParameterHandling(HttpParameterType.Querystring); var authenticator = new Authenticator(_credentials); Get["/"] = nothing => new RedirectResponse("api/oauth/authorize", RedirectResponse.RedirectType.Permanent); Get["api/oauth/authorize", true] = async(nothing, ct) => { var requestToken = await authenticator.GetRequestToken(); ConfigurationManager.AppSettings["RequestToken"] = JsonConvert.SerializeObject(requestToken); return(new RedirectResponse(authenticator.UserRequestUrl(requestToken))); }; Get["api/oauth/callback", true] = async(parameters, ct) => { var ps = HttpUtility.ParseQueryString(Request.Url.Query); ConfigurationManager.AppSettings["UserId"] = ps["userid"]; var verifier = ps["oauth_verifier"]; var credentials = await authenticator.ExchangeRequestTokenForAccessToken(JsonConvert.DeserializeObject <RequestToken>(ConfigurationManager.AppSettings["RequestToken"]), verifier); ConfigurationManager.AppSettings["OAuthToken"] = credentials.Key; ConfigurationManager.AppSettings["OAuthSecret"] = credentials.Secret; return(new JsonResponse(credentials, new DefaultJsonSerializer())); }; Get["api/withings/activity"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetActivityMeasures ( DateTime.Parse("2017-01-01"), DateTime.Parse("2017-03-30"), ConfigurationManager.AppSettings["UserId"], ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse <WithingsWeighInResponse>(activity, new DefaultJsonSerializer())); }; Get["api/withings/dailyactivity"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetActivityMeasures ( DateTime.Today.AddDays(-30), ConfigurationManager.AppSettings["UserId"], ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse <WithingsWeighInResponse>(activity, new DefaultJsonSerializer())); }; Get["api/withings/sleepsummary"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetSleepSummary ( "2017-01-01", "2017-03-30", ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer())); }; Get["api/withings/workouts"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetWorkouts ( "2017-01-01", "2017-03-30", ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer())); }; Get["api/withings/sleepmeasures"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetSleepMeasures ( ConfigurationManager.AppSettings["UserId"], DateTime.Now.AddDays(-90), DateTime.Now.AddDays(-1), ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse(JsonConvert.SerializeObject(activity), new DefaultJsonSerializer())); }; Get["api/withings/body"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetBodyMeasures ( ConfigurationManager.AppSettings["UserId"], DateTime.Now.AddDays(-90), DateTime.Now.AddDays(-1), ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse <WithingsBody>(activity, new DefaultJsonSerializer())); }; Get["api/withings/bodysince"] = nothing => { var client = new WithingsClient(_credentials); var activity = client.GetBodyMeasures ( ConfigurationManager.AppSettings["UserId"], DateTime.Now.AddDays(-90), ConfigurationManager.AppSettings["OAuthToken"], ConfigurationManager.AppSettings["OAuthSecret"] ); return(new JsonResponse <WithingsBody>(activity, new DefaultJsonSerializer())); }; Get["api/oauth/requesttoken", true] = async(nothing, ct) => { var token = await authenticator.GetRequestToken(); return(new JsonResponse <RequestToken>(token, new DefaultJsonSerializer())); }; }