3

我在我的 iphone 应用程序中陷入 FatSecret REST api 的无效 oauth 签名问题。下面是回复 error = { code = 8; message = "Invalid signature: oauth_signature 'giWu0JtjgG3OBqD_sBCByz-Q2Gk='"; };

我正在使用 HMAC_SHA1 创建签名请求,对于某些搜索,它会返回正确的签名,在某些情况下,它会为 food.get 和 food.search 方法提供上述错误

任何帮助都会很有用提前谢谢!!

4

3 回答 3

4

我发现让 oauth 与 FatSecret 一起工作相当乏味。当您向他们发送有关 oauth 问题的电子邮件时,他们会将您定向到他们的 google 组。最终,我也无法在那里获得太多帮助,但是当我最终弄清楚时,我确实发布了我的实现。

这是一个完整的node.js foods.search() 实现——可能值得一看

于 2013-12-10T21:12:05.737 回答
1

发生这种情况是因为 oauth 签名编码不正确。生成的摘要应按照 RFC2045 协议进行 base64 编码。

通过在生成 o_auth 签名时将字符串“_”替换为“/”和“-”替换为“+”来获得解决方案。

希望它会帮助其他用户:)

于 2013-12-19T11:04:35.797 回答
0

我发现如果 base64 编码的 oAuth 签名有任何空格(在 RFC3986 的 url 编码后的“+”),我也会收到无效的签名响应。我检查了 oAuth 签名字符串不包含违规字符,如果包含,我重新生成了 oAuth 签名。我使用自 1970 年以来的时间间隔作为时间戳(根据 API 的要求)和 nonce,因此只需重新创建 nonce 和时间戳直到没有空格出现。

于 2015-03-25T22:12:22.947 回答