2016-08-29 4 views
0
var appCredentials = new FitbitAppCredentials() 
      { 
       ClientId = "227RD5", //ConfigurationManager.AppSettings["FitbitClientId"], 
       ClientSecret = "468c585ba98fc84e463952ca7a306c07" //ConfigurationManager.AppSettings["FitbitClientSecret"] 
      }; 

      string UserId = Convert.ToBase64String((Encoding.ASCII.GetBytes("3J9685"))); 
      string code = Request.Params["code"]; 
      StringBuilder dataRequestUrl = new StringBuilder(); 
      dataRequestUrl.Append("https://api.fitbit.com/1/user/-"); 
      dataRequestUrl.Append("/profile.json"); 


      HttpWebRequest dataRequest = (HttpWebRequest)WebRequest.Create(dataRequestUrl.ToString()); 
      dataRequest.Method = "POST"; 

      string _auth = string.Format("{0}:{1}", appCredentials.ClientId, appCredentials.ClientSecret); 
      var _encbyte = Encoding.ASCII.GetBytes(_auth); 
      string _enc = Convert.ToBase64String(_encbyte); 
      string _authorizationHeader = string.Format("{0} {1}", "Bearer", _enc); 
      dataRequest.Headers["Authorization"] = _authorizationHeader; 
      dataRequest.ContentType = "application/x-www-form-urlencoded"; 
      dataRequest.Accept = "application/json"; 

      string responseJson; 
      HttpWebResponse response = null; 
      try 
      { 
       response = dataRequest.GetResponse() as HttpWebResponse; 
      } 
      catch (WebException webEx) 
      { 
       response = webEx.Response as HttpWebResponse; 
      } 
      catch (Exception ex) 
      { 
       throw ex; 
      } 


      using (var reader = new StreamReader(response.GetResponseStream())) 
      { 
       responseJson = reader.ReadToEnd(); 
      } 

Über den Code geben Sie mir unberechtigten Zugriff Fehler. Irgendein kann finden, dass was das Problem im code ist. Ich kann den Benutzer autorisieren und das Benutzer-Token erneuern, aber wenn ich versuche, userprofile.json Anruf zu erhalten, gibt es mir unerlaubten Zugangsfehler.Fitbit Oauth2.0 API - Holen Sie sich Benutzerprofildaten

+0

Verwendung folgenden Link http://stackoverflow.com/questions/37520816/how-to-integrate-fitbit-api-in-ios-app-using-swift/39697291 # 39697291 –

Antwort

0

Zum Abrufen von Benutzerprofilinformationen benötigen wir nur Zugriffstoken, die als Teil des Headers gesendet werden.

Sie benötigen nicht clientId und ClientSecret zum Abrufen von Profilinformationen.

Code wie folgt ändern:

 StringBuilder dataRequestUrl = new StringBuilder(); 
     dataRequestUrl.Append("https://api.fitbit.com/1/user/-/profile.json"); 

     HttpWebRequest dataRequest = (HttpWebRequest)WebRequest.Create(dataRequestUrl.ToString()); 

     String accessToken = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiXXXXXXXXXX"; 
     dataRequest.Method = "GET"; 
     dataRequest.Headers.Add("Authorization","Bearer "+ accessToken); 
     dataRequest.ContentType = "application/json"; 

     string responseJson; 
     HttpWebResponse response = null; 
     try 
     { 
      response = dataRequest.GetResponse() as HttpWebResponse; 
     } 
     catch (WebException webEx) 
     { 
      response = webEx.Response as HttpWebResponse; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 

     using (var reader = new StreamReader(response.GetResponseStream())) 
     { 
      responseJson = reader.ReadToEnd(); 
     } 
Verwandte Themen