调用FITBIT rest API时出现无效签名错误

时间:2014-05-13 07:45:58

标签: rest oauth fitbit

我已在FITBIT注册。 我正在使用消费者密钥向fitbit api(POST / oauth / request_token )发出请求。我提到了https://wiki.fitbit.com/display/API/OAuth+Authentication+in+the+Fitbit+API

我的要求是: POST / request_token HTTP / 1.1 主持人:oauth 授权:OAuth realm =" https:/api.fitbit.com/oauth/request_token" ;, oauth_consumer_key =" XXXXXXXXXXXX",oauth_signature_method =" HMAC-SHA1",oauth_timestamp =" 1399958922",oauth_nonce =" H8xxW0",oauth_version =" 1.0",oauth_signature =" 80M1tag6%2FYk2JV%2FQdQ%2BucxxDrLA%3D&#34 ; 缓存控制:无缓存

我在json对象下面收到无效的签名错误:

{
    "errors": [
        {
            "errorType": "oauth",
            "fieldName": "oauth_signature",
            "message": "Invalid signature: 80M1tag6/Yk2JV/QdQ+ucxxDrLA="
        }
    ],
    "success": false }

我们有消费者密钥和消费者密钥。在这个阶段没有Token Secret。请给我一个解决方案,让这个API工作。

谢谢, 格利扬

1 个答案:

答案 0 :(得分:0)

与WestDiscGolf提到的一样,您需要确保您的回调网址与您正在编写的应用程序中的回调网址相匹配。通常,当您注册开发人员帐户以访问API时,他们会要求提供回调URL,并且回调URL必须与您在请求访问令牌时放入的内容相匹配。

但是,如果您收到无效的签名错误,则回调URL可能不是问题。您需要确保签名与API文档中指定的签名完全匹配。签名可能很棘手,并且有许多库可以帮助解决这个问题。我主要使用Java,而对于Java,Scribe库很棒(https://github.com/fernandezpablo85/scribe-java)。