I'm having some trouble getting my SOAP envelope to do what I want and
need a little tip. I can't get the SubscriberCustomField nodes to be
anything but blank:
Here's what I want it to look like:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Subscriber.AddWithCustomFields
xmlns="http://api.createsend.com/api/">
<ApiKey>string</ApiKey>
<ListID>string</ListID>
<Email>string</Email>
<Name>string</Name>
<CustomFields>
<SubscriberCustomField>
<Key>comments</Key>
<Value>Hello World</Value>
</SubscriberCustomField>
</CustomFields>
</Subscriber.AddWithCustomFields>
</soap:Body>
</soap:Envelope>
Here's what I'm getting:
<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<n1:Subscriber.AddWithCustomFields
xmlns:n1="http://api.createsend.com/api/">
<n1:ApiKey>string</n1:ApiKey>
<n1:ListID>string</n1:ListID>
<n1:Email>string</n1:Email>
<n1:Name>string</n1:Name>
<n1:CustomFields>
<n1:SubscriberCustomField>
</n1:SubscriberCustomField>
<n1:SubscriberCustomField>
</n1:SubscriberCustomField>
</n1:CustomFields>
</n1:Subscriber.AddWithCustomFields>
</env:Body>
</env:Envelope>
And here's my code
require 'soap/wsdlDriver'
require 'cgi'
@url = "http://#{site_name}.createsend.com/api/api.asmx?wsdl"
@service = SOAP::WSDLDriverFactory.new(@url).create_rpc_driver
str = ""
#custom_fields = "<SubscriberCustomField><Key>comments</Key><Value>hello
world</Value></SubscriberCustomField>"
#custom_fields = [{:SubscriberCustomField => {:Key => "comments", :Value
=> "hello world"}}]
#custom_fields = [{:Key => "comments", :Value => "hello world"}]
#custom_fields = [:comments => "hello world"]
custom_fields = {:SubscriberCustomField => {:Key => "comments", :Value
=> "hello world"}}
@service.wiredump_dev = str
@service.AddSubscriberWithCustomFields({:ApiKey=>@api_key,
:ListID=>list_id, :Email=>email, :Name=>name, :CustomFields =>
custom_fields})
puts str
The commented custom_fields variables are things I've tried with the
same result.
Thanks in advance for the help.
···
--
Posted via http://www.ruby-forum.com/.