Affilinet + Savon无法使用gem连接到SOAP服务

时间:2014-08-11 19:34:18

标签: ruby-on-rails ruby ruby-on-rails-3 soap savon

我正在尝试使用SOAP连接到Affilinet。关于此主题的资源不多。我发现最近有人更新了他的文件的代码lib/affilinet.rb

所以我试图了解它是如何工作的并连接到沙箱数据库

Affilinet Demo Database SOAP

首先我将第27行更改为,因为我只想让开发人员访问:

def initialize(user, password, options = {})
@base_url =  'https://developer-api.affili.net'

我把它放在我的rails目录/lib/affilinet.rb

然后将其设置为config/application.rb中的自动加载:

config.autoload_paths += %W(#{config.root}/lib)

现在我创建了一个名为:

的函数的测试控制器

我尝试使用我的用户名和密码初始化API类。然后我尝试登录,从服务:product wsdl获取令牌。这应该加载到Savon gem 2.0客户端,实际上。

def test

  client = AffilinetAPI::API.new("myusername","mypassword")

  @response = client.product.token

end

我收到错误消息:undefined method new for Savon:Module

这是由lib/affiliate.rb文件引起的:

def driver

 @driver ||= Savon.new(@base_url + @wsdl)

end

我用以下内容替换了该行:

@driver ||= Savon.client(wsdl: @base_url + @wsdl)

现在我终于陷入了困境:

undefined method `services' for #<Savon::Client:0x007f8b950133d0>

 def services

  driver.services

 end

任何人都可以帮我解决这个问题吗?没有好的文件。

更新1:

现在我正在使用Savon 3。它确实有new方法,有些功能可以使用。我怎么称呼

protected区域的方法?我将它们更改为public

如何设置操作参数并调用?令牌功能不起作用。

非常感谢你们!

编辑:我设法让它现在运作并了解它是如何工作的。主题可以关闭。

我的错误没有Savon 3。必须使用operation.body设置参数!然后

operation.call执行

0 个答案:

没有答案