ruby SimpleAuth错误

ruby SimpleAuth错误,ruby,tumblr,faraday,Ruby,Tumblr,Faraday,我是ruby新手,在使用ruby tumblr api时遇到了一些问题 执行此非常简单的测试用例时: #!/usr/bin/env ruby require 'tumblr_client' Tumblr.configure do |config| config.consumer_key = "XXXXXXXXXX" config.consumer_secret = "XXXXXXXXXX" config.oauth_token = "XXXXXXXXXX" config.oau

我是ruby新手,在使用ruby tumblr api时遇到了一些问题

执行此非常简单的测试用例时:

#!/usr/bin/env ruby
require 'tumblr_client'

Tumblr.configure do |config|
  config.consumer_key = "XXXXXXXXXX"
  config.consumer_secret = "XXXXXXXXXX"
  config.oauth_token = "XXXXXXXXXX"
  config.oauth_token_secret = "XXXXXXXXXX"
end

client = Tumblr::Client.new

puts client.posts("test.tumblr.com")
我收到以下错误消息:

/Library/Ruby/Gems/2.0.0/gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:88:in `attributes': SimpleOAuth: Found extra option keys not matching ATTRIBUTE_KEYS: (RuntimeError)
  [:api_host, :consumer_secret, :token_secret]
    from /Library/Ruby/Gems/2.0.0/gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:74:in `signed_attributes'
    from /Library/Ruby/Gems/2.0.0/gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:80:in `normalized_attributes'
    from /Library/Ruby/Gems/2.0.0/gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:62:in `to_s'
    from /Library/Ruby/Gems/2.0.0/gems/faraday_middleware-0.9.1/lib/faraday_middleware/request/oauth.rb:41:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:139:in `build_response'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.0/lib/faraday/connection.rb:377:in `run_request'
    from /Library/Ruby/Gems/2.0.0/gems/faraday-0.9.0/lib/faraday/connection.rb:140:in `get'
    from /Library/Ruby/Gems/2.0.0/gems/tumblr_client-0.8.4/lib/tumblr/request.rb:8:in `get_response'
    from /Library/Ruby/Gems/2.0.0/gems/tumblr_client-0.8.4/lib/tumblr/request.rb:26:in `get'
    from /Library/Ruby/Gems/2.0.0/gems/tumblr_client-0.8.4/lib/tumblr/blog.rb:40:in `posts'
    from awd_tumblr.rb:13:in `<main>'
/Library/Ruby/Gems/2.0.0/Gems/simple\u oauth-0.3.0/lib/simple\u oauth/header.rb:88:在“属性”中:SimpleOAuth:找到与属性键不匹配的额外选项键:(运行时错误)
[:api\u主机,:消费者\u机密,:令牌\u机密]
from/Library/Ruby/Gems/2.0.0/Gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:74:in“signed_attributes”
from/Library/Ruby/Gems/2.0.0/Gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:80:in“normalized_attributes”
from/Library/Ruby/Gems/2.0.0/Gems/simple_oauth-0.3.0/lib/simple_oauth/header.rb:62:in`to_'s'
from/Library/Ruby/Gems/2.0.0/Gems/faraday_middleware-0.9.1/lib/faraday_middleware/request/oauth.rb:41:in'call'
from/Library/Ruby/Gems/2.0.0/Gems/faraday-0.9.0/lib/faraday/rack_builder.rb:139:in'build_response'
from/Library/Ruby/Gems/2.0.0/Gems/faraday-0.9.0/lib/faraday/connection.rb:377:in'run_request'
from/Library/Ruby/Gems/2.0.0/Gems/faraday-0.9.0/lib/faraday/connection.rb:140:in'get'
from/Library/Ruby/Gems/2.0.0/Gems/tumblr_client-0.8.4/lib/tumblr/request.rb:8:in'get_response'
from/Library/Ruby/Gems/2.0.0/Gems/tumblr_client-0.8.4/lib/tumblr/request.rb:26:in'get'
from/Library/Ruby/Gems/2.0.0/Gems/tumblr_client-0.8.4/lib/tumblr/blog.rb:40:in'posts'
来自awd_tumblr.rb:13:in`'

我知道我在过去的法拉第版本中遇到了一些问题,可能编辑了一些文件来解决这些问题,但那是很久以前的事了,我不知道我在那里做了什么。

我现在从 然后简单地复制了我的
simple_oauth-0.3.0
文件夹中的文件


这样它又开始工作了。

我现在从 然后简单地复制了我的
simple_oauth-0.3.0
文件夹中的文件


我编辑了ruby文件
/var/lib/gems/2.1.0/gems/simple\u oauth-0.3.0/lib/simple\u oauth/header.rb
,并对警告进行了注释。它起作用了

def attributes
  matching_keys, extra_keys = options.keys.partition { |key| ATTRIBUTE_KEYS.include?(key) }
  if options[:ignore_extra_keys] || extra_keys.empty?
    Hash[options.select { |key, _value| matching_keys.include?(key) }.collect { |key, value| [:"oauth_#{key}", value] }]
  else
    Hash[options.select { |key, _value| matching_keys.include?(key) }.collect { |key, value| [:"oauth_#{key}", value] }]
    # fail "SimpleOAuth: Found extra option keys not matching ATTRIBUTE_KEYS:\n  [#{extra_keys.collect(&:inspect).join(', ')}]"
  end
end

我编辑了ruby文件
/var/lib/gems/2.1.0/gems/simple\u oauth-0.3.0/lib/simple\u oauth/header.rb
,并对警告进行了注释。它起作用了

def attributes
  matching_keys, extra_keys = options.keys.partition { |key| ATTRIBUTE_KEYS.include?(key) }
  if options[:ignore_extra_keys] || extra_keys.empty?
    Hash[options.select { |key, _value| matching_keys.include?(key) }.collect { |key, value| [:"oauth_#{key}", value] }]
  else
    Hash[options.select { |key, _value| matching_keys.include?(key) }.collect { |key, value| [:"oauth_#{key}", value] }]
    # fail "SimpleOAuth: Found extra option keys not matching ATTRIBUTE_KEYS:\n  [#{extra_keys.collect(&:inspect).join(', ')}]"
  end
end

我将我的应用程序设置为使用simple_oauth-0.2.0

我将我的应用程序设置为使用simple_oauth-0.2.0

看起来法拉第中间件正在传递simple_oauth无法使用的属性,但为什么会发生这种情况?我能做些什么呢?看起来法拉第中间件正在传递不能被simple_oauth使用的属性,但为什么会发生这种情况?我能做些什么?怎么做?安装0.2.0版本,然后设置版本号并首先加载simple_oauth://gem'simple_oauth','=0.2.0'//需要'simple_oauth'//需要'tumblr_client'怎么做?安装0.2.0版本,然后设置版本号并首先加载simple_oauth://gem'simple_oauth','=0.2.0'//require'simple_oauth'//require'tumblr_client'