1

我对 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>'

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

4

3 回答 3

3

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

于 2014-10-13T06:24:14.270 回答
2

我编辑了 ruby​​ 文件/var/lib/gems/2.1.0/gems/simple_oauth-0.3.0/lib/simple_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
于 2014-10-12T08:36:50.523 回答
0

我现在从https://github.com/laserlemon/simple_oauth/tree/466ea5c7b8094a93d34d6bc6e6ea1b2c4f8d708c下载了一个早期版本, 并简单地将文件复制到我的simple_oauth-0.3.0文件夹中。

这样它就可以再次工作了。

于 2014-10-10T15:29:51.567 回答