Withings Web API调用签名问题?

时间:2014-10-22 21:11:27

标签: java withings

所以我生成的URL与我们从开发者网站获得的URL相同 但是我得到{“status”:342} 我正在使用java并使用下面的oauth nonce,timestamp和oauth signature

但是,当我将这3个值替换为来自withings网站的内容时,它的工作正常。 我不明白我做错了什么。任何帮助表示赞赏

  • String.valueOf(Math.random())for nonce
  • System.currentTimeMillis()/ 1000L - timestamp
  • 使用以下

  • 生成签名的SecretKeySpec
  • GET

  • http://wbsapi.withings.net/measure?action=getmeas&userid=2---0
  • oauth_consumer_key = 00000000061e0bf7f7b109903040dc ------&安培; oauth_nonce = 0.4509674797693397&安培; oauth_signature_method = HMAC-SHA1&安培; oauth_timestamp = 1414031787&安培;组oauth_token = 000000-3b5f9e4704d270551e69b45db31de4ec88b4ebe03&安培; oauth_version = 1.0

1 个答案:

答案 0 :(得分:3)

生成网址时要考虑的一件事是您的网址编码何时/何地发生。 RestSharp等一些很棒的工具在生成时会对字符串进行编码。如果您已对oauth_signature进行编码并将其作为参数添加到字符串中,则会再次对其进行编码。鹰眼你的最后一个字符串,以确保你不是对你的oauth_signature或其他生成的值进行双重编码。例如,编码的oauth_signature中的%3D将成为最终字符串中的%253D,并快速生成342代码。