【问题标题】:Withings Web API call signature issue?Withings Web API 调用签名问题?
【发布时间】:2014-11-19 12:53:27
【问题描述】:

所以我生成的 URL 与我们从 withings 开发者网站获得的 URL 相同。
但是我得到 {“status”:342}。
我正在使用 java 并在下面使用 oauth nonce、时间戳和 oauth 签名

但是,当我从 withings 网站上替换这 3 个值时,它工作得很好。 我不明白我做错了什么。任何帮助表示赞赏

  • 随机数的String.valueOf(Math.random())
  • System.currentTimeMillis() / 1000L – 时间戳
  • SecretKeySpec 使用下面生成签名

  • 获取

  • 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

【问题讨论】:

    标签: java withings


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。是的,我必须仔细观察最后的字符串。我在下面使用了签名生成。希望这对其他人有帮助。字符串文本 = httpMethod + "&" + urlEncode(baseUrl) + "&" + urlEncode("action="+withingsAPIMethod+"&"+paramStr+"&userid="+userID);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多