我使用的是Ruby 1.8.7,Rails 2.3.8,Linkdin 0.1.7,Roxml 3.1.5和Oauth 0.3.6。在我的帐户控制器中,我正在测试Will Read的代码(http://pivotallabs.com/users/will/blog/articles/1096-linkedin-gem-for-a-web-app)。当我在linkdin上单击“确定我将允许它”按钮时,它将返回到回调方法,然后在此行崩溃:
atoken, asecret = client.authorize_from_request(session[:rtoken], session[:rsecret], pin)
带有以下错误跟踪:
OAuth::Problem (signature_invalid):
oauth (0.3.6) lib/oauth/consumer.rb:167:in `request'
oauth (0.3.6) lib/oauth/consumer.rb:183:in `token_request'
oauth (0.3.6) lib/oauth/tokens/request_token.rb:18:in `get_access_token'
linkedin (0.1.7) lib/linked_in/client.rb:35:in `authorize_from_request'
app/controllers/accounts_controller.rb:52:in `callback'
.....
此外,我检查了rtoken和rsecret以及params [:oauth_verifier]的会话值,并且没有一个是空白的!
答案 0 :(得分:0)
我有类似的问题。在我的情况下,问题是我的消费者将请求发送到HTTP Uri。但是OAuth服务器(Stash)有一个重定向到httpS。一旦我将网站网址更改为HTTPS,它就适用于我。
另一个原因可能是两者之间存在代理。这需要一些额外的配置。