OAuth gem get_request_token Net::HTTPFatalError 错误的原因


使用 OAuth gem - https://rubygems.org/gems/oauth 做 OAuth 操作。

参照官方文档: http://www.rubydoc.info/gems/oauth/ 和 OAuth ruby 例子: http://wiki.openstreetmap.org/wiki/OAuth_ruby_examples 这样做:


 ruby


 @consumer=OAuth::Consumer.new ENV["consumer_key"], 
                          ENV["consumer_secret"], 
                          {:site=>ENV["api_url"]}

@request_token = @consumer.get_request_token

这里能获取 @consumer 里的数据,但执行到 @consumer.get_request_token 时报错:


 Net::HTTPFatalError (500 "Internal Server Error"):

查看了 OAuth gem 的源代码:

https://github.com/oauth-xx/oauth-ruby/blob/master/lib/oauth/consumer....

如果不设置 oauth_callback ,它将为 OAuth::OUT_OF_BAND

这是上面错误的原因吗?一定要设置 callback 吗?(文档中有这么一句: We need to specify the oauth_callback url explicitly, otherwise it defaults to “oob” (Out of Band)

gem http ruby oauth

猫心哈狼君 10 years, 10 months ago

不一定非要给这个 callback 加一个 controller,在返回的重定向 URL 里把你要的东西正则出来就行了

体外预应力 answered 10 years, 10 months ago

Your Answer