[英]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");
我之前也遇到过同样的问题,似乎签名需要您按字母顺序对参数(api参数+ oauth参数)进行排序。
在使您基于uri签名时,您还需要给出正确的密码。
您可以检查是否要在此处使用我的php oauth库(在AbstractService.php中更详细) https://github.com/huitiemesens/PHPoAuthLib (它是原始phpoauthlib的分叉,具有针对withings api的特定顺序...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.