2016-08-29 19 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(); 
      } 

上記のコードは不正なアクセスエラーです。いずれにせよ、コード内の問題は何かを知ることができます。ユーザーを認証してユーザートークンをリフレッシュできますが、userprofile.jsonを呼び出そうとすると不正なアクセスエラーが発生します。Fitbit Oauth2.0 API - ユーザプロファイルデータを取得

+0

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

答えて

0

ユーザープロファイル情報を取得するには、ヘッダーの一部として送信されたアクセストークンのみが必要です。

プロファイル情報を取得するためにclientIdとClientSecretは必要ありません。

は、このようにコードを変更し

:リンク以下

 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(); 
     } 
関連する問題