繁体   English   中英

Withings API的Oauth签名失败

[英]Oauth signature failed for withings API

我正在努力将我的应用程序与带有Spring Rest模板的Withings api集成在一起。

但是,在生成Oauth签名时,我收到了“无效签名”。 我正在尝试根据API规范设计一个签名,但无法成功生成它。 我已经提到了我使用的代码。 请给我一些解决方案。

private String generateSignature(String baseString, String secret) throws          UnsupportedEncodingException {
    String secretKey = consumerSecret + "&";


    SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes(), HMAC_SHA1SignatureMethod.SIGNATURE_NAME);
    HMAC_SHA1SignatureMethod hmacsha = new HMAC_SHA1SignatureMethod(keySpec);
    String signatureString = hmacsha.sign(baseString);
    String base64Encode = new String((signatureString.getBytes()));
    signature = URLEncoder.encode(base64Encode, "UTF-8");

供参考, http://oauth.withings.com/api

我之前也遇到过同样的问题,似乎签名需要您按字母顺序对参数(api参数+ oauth参数)进行排序。

在使您基于uri签名时,您还需要给出正确的密码。

您可以检查是否要在此处使用我的php oauth库(在AbstractService.php中更详细) https://github.com/huitiemesens/PHPoAuthLib (它是原始phpoauthlib的分叉,具有针对withings api的特定顺序...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM