【问题标题】:ruby SimpleOAuth error红宝石 SimpleOAuth 错误
【发布时间】:2014-10-10 08:59:56
【问题描述】:

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

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

【问题讨论】:

标签: ruby tumblr faraday


【解决方案1】:

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

【讨论】:

  • 如何做到这一点?
  • 安装0.2.0版本,然后设置版本号,先加载simple_oauth: // gem 'simple_oauth', '=0.2.0' //require 'simple_oauth' //require 'tumblr_client '
【解决方案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

【讨论】:

    【解决方案3】:

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

    这样它又可以工作了。

    【讨论】:

      猜你喜欢
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2017-05-26
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多