【问题标题】:Undefined method '+' for nil:NilClass (when trying to validate REST token acceptation)nil:NilClass 的未定义方法“+”(尝试验证 REST 令牌接受时)
【发布时间】:2016-06-15 02:12:22
【问题描述】:

我正在尝试使用 Ruby oauth 客户端验证 Magento REST Api 令牌。 我正在使用 Windows 7、Ruby 2.2.0(托管在 Ubuntu 远程服务器上的 Magento 1.7.0.2)。

1) 我通过 CLI 执行以下命令:

oauth --verbose --query-string --consumer-key ABCD --consumer-secret ABCD --access-token -url https://www.mywebsite.com/ch_fr/oauth/token --authorize-url https://www.mywebsite.com/ch_fr/admin/oauth_authorize --request-token-url mywebsite.com/ch_fr/oauth/initiate authorize

注意:我的命令中的 url 都以“https://www”开头(我在 stackoverflow 上的低代表阻止我发布超过 2 个 url)。

2) ruby​​ 客户端显示以下消息:

Server appears to support OAuth 1.0a; enabling support.
Please visit this url to authorize:
https://www.mywebsite.com/ch_fr/admin/oauth_authorize?oauth_token=ABCD
Please enter the verification code provided by the SP (oauth_verifier):

3)成功连接到oauth_authorize url后,登录,接受token并接收验证码,我将代码填入我的shell Windows +回车。

然后,这是我的问题,出现以下消息:

RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1532:in `addr_port': undefined method `+' for nil:NilClass (NoMet
Error)
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1465:in `begin_transport'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1410:in `transport_request'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1384:in `request'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1377:in `block in request'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:853:in `start'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/net/http.rb:1375:in `request'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/lib/oauth/consumer.rb:161:in `request'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/lib/oauth/consumer.rb:195:in `token_reques

     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/lib/oauth/tokens/request_token.rb:20:in `g
access_token'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/lib/oauth/cli.rb:80:in `execute'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/lib/oauth/cli.rb:19:in `execute'
     from C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/oauth-0.5.1/bin/oauth:5:in `<top (required)>'
     from C:/RailsInstaller/Ruby2.2.0/bin/oauth:23:in `load'
     from C:/RailsInstaller/Ruby2.2.0/bin/oauth:23:in `<main>'

我的 Magento 服务器发送的内容是否被 Ruby 错误接收(例如“nil”值)? 验证码是否未正确发送到我的 Magento 服务器? 还是我的 Ruby 安装有问题? 还有一点?

注意 2:我是 Ruby 新手 ;)

任何帮助将不胜感激。 提前谢谢。

【问题讨论】:

  • 如果您将用于连接的 ruby​​ 代码粘贴到您的 REST API 中,将会有很大帮助。我猜测(从错误消息中)您尝试连接的 url 不是完整的 url(因此它只有 /admin/oauth_/xxx

标签: ruby-on-rails rest magento oauth token


【解决方案1】:

我认为您的问题与您调用的 url 有关,下面的错误是因为您调用 Net::HTTP.new(url,nil) 并且库不喜欢 nil 端口。 我认为您需要修复 url 以添加端口并重试。

【讨论】:

    猜你喜欢
    • 2021-01-03
    • 2012-03-03
    • 1970-01-01
    • 2013-01-16
    • 2019-06-07
    • 2021-05-22
    • 2012-08-07
    • 1970-01-01
    • 2016-07-08
    相关资源
    最近更新 更多