使用 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)
)
このコールバックにコントローラーを追加する必要はありません。返されたリダイレクト URL に必要なものを正規化するだけです