使用 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)
)
不一定要給這個 callback 加一個 controller,在回傳的重定向 URL 裡把你要的東西正則出來就行了