直到几天前一切正常。但是在对FitBit进行一些更改后,新用户再也无法获得OAuth握手。问题是当我收到临时代币并拨打电话以完成握手并获得凭证时。
所以在第一步我得到:
TOKEN: 1a227cfde686220183763946a98173bc and VERIFIER: p2g5ims7o4ffscev603rbif05g
在第二步中我使用主题来调用https://api.fitbit.com/oauth/access_token ...
签名基本字符串是:
POST&https%3A%2F%2Fapi.fitbit.com%2Foauth%2Faccess_token&oauth_consumer_key%3D7c5e888aa3dd4d17a26d82a7f541b278%26oauth_token%3D1a227cfde686220183763946a98173bc%26oauth_nonce%3D5hw45lgu%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1391094796%26oauth_verifier%3Dp2g5ims7o4ffscev603rbif05g%26oauth_version%3D1.0
然后我收到标题(使用与第一步相同的功能计算签名)
Authorizing with HEADER: OAuth oauth_consumer_key="7c5e888aa3dd4d17a26d82a7f541b278",oauth_token="1a227cfde686220183763946a98173bc",oauth_nonce="5hw45lgu",oauth_signature="X4udgn9A7Q2xI%2FN38QELl%2BIDVqM%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1391094796",oauth_verifier="p2g5ims7o4ffscev603rbif05g",oauth_version="1.0"
这应该有效,但我得到401错误说:
{"errors":[{"errorType":"oauth","fieldName":"oauth_access_token","message":"Invalid signature or token 'JNGSIMomid/oghtWGrz7crC6KhM=' or token '6c45d0ce39195e848da14cad0a4f9719'"}],"success":false}
我已经工作了7个小时了...而且据我所知,一切都很好......错误是关于字段名称oauth_access_token ...这个字段甚至不存在。无论如何我试过并且发现错误说安全性不好......
任何想法?
答案 0 :(得分:0)
我遇到了同样的问题。在做了一些研究之后,我注意到API已经改变了,我使用的lib已经过时了。 为了解决这个问题,我更新了我的lib并进行了一些代码更改。 以下是更改后的.Net实现的链接: https://github.com/aarondcoleman/Fitbit.NET/wiki/Breaking-Change-on-1-24-2014-as-a-result-of-OAuth-update-in-Fitbit-API
此致
的Fredy