我正在尝试使用TradeKing API将股票价格流转化为
https://developers.tradeking.com/documentation/ruby-streaming
或下面的复制和粘贴代码
require 'em-http'
require 'em-http/middleware/oauth'
credentials = {
:consumer_key => "<CONSUMER_KEY>",
:consumer_secret => "<CONSUMER_SECRET>",
:access_token => "<ACCESS_TOKEN>",
:access_token_secret => "<ACCESS_TOKEN_SECRET>"
}
EM.run do
conn = EventMachine::HttpRequest.new('https://stream.tradeking.com/v1/market/quotes.json?symbols=F')
conn.use EventMachine::Middleware::OAuth, credentials
http = conn.get
http.stream { |chunk| puts chunk }
http.errback do
EM.stop
end
trap("INT") { http.close; EM.stop }
trap("TERM") { http.close; EM.stop }
end
在获得密钥,密钥和令牌之后,我构建了一个简单的Ruby应用程序来使用代码,但是我收到一条错误,指出它无法加载
require 'em-http/middleware/oauth'
如果我禁用此功能,代码EventMachine::Middleware::OAuth
将无效。
以下是错误消息:
c:/tools/ruby215/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/
kernel_require.rb:54:in `require': cannot load such file --
simple_oauth (LoadError)
from c:/tools/ruby215/lib/ruby/site_ruby/2.1.0/rubyg
ems/core_ext/kernel_require.rb:54:in `require'
from c:/tools/ruby215/lib/ruby/gems/2.1.0/gems/em-ht
tp-request-1.1.2/lib/em-http/middleware/oauth.rb:1:in `<top
(required)>'
from c:/tools/ruby215/lib/ruby/site_ruby/2.1.0/rubyg
ems/core_ext/kernel_require.rb:54:in `require'
from c:/tools/ruby215/lib/ruby/site_ruby/2.1.0/rubyg
ems/core_ext/kernel_require.rb:54:in `require'
from app.rb:2:in `<main>'
我是事件机器和em-http gem的新手。我查看了他们的文档,但无法找到有关此错误的信息。有人可以帮我找出文件无法加载的原因吗?
答案 0 :(得分:0)
g = sns.factorplot(x="DaysIn", y='value', hue="OTU_id",
col='GroupUID', data=long_df, sharex=False, sharey=False)
gem中oauth.rb
文件的第1行。我查看了该文件,第一行显示em-http-request
我尚未安装它。我认为安装require simple_oauth
gem会安装em-http-request
作为依赖项,但我猜不是(好吧,em-http-request已经好几年没有更新了)。
此问题的解决方法是安装simple_oauth
gem。
simple_oauth
再次运行这些代码,它应该可以工作。
https://rubygems.org/gems/simple_oauth/versions/0.3.1
https://github.com/laserlemon/simple_oauth
我希望这可以帮助任何遇到同样问题的人(因为TradeKing API doc并不那么明确)。