我正试图用RoR和官方mailchimp api gem向多个列表订阅一封电子邮件。它是有效的,但最后四个值(double_optin、update_existing、replace_interest和send_welcome)没有更新,并且我得到一个错误,即电子邮件"已经存在",尽管我试图将update_existeng传递为true。我已经给Mailchimp写了好几次信,他们觉得自己的援助已经到了尽头。他们说他们不是包装专家——即使这是"官方"的宝石——也不能进一步帮助我。我的代码如下:
responses << mailchimp_lists.each do |ml|
mailchimp.lists.subscribe(
ml,
{ "email" => order.customer_email,
"euid" => order.customer_id,
"leid" => ""
},
{ "FNAME" => order.customer_first_name,
"LNAME" => order.customer_last_name,
"COMPANY" => order.company_name,
"ADDRESS1" => order.billing_address_1,
"ADDRESS2" => order.billing_address_2,
"CITY" => order.billing_city,
"STATE" => order.billing_state,
"POSTALCODE" => order.billing_zip,
"SALUTATION" => ""
},
"html",
false,
true,
false,
false
)
end
我尝试过用几种不同的方式发送最后四个参数,例如:
"email_type" => "html",
"double_optin" => false,
或者:
{"email_type" => "html"},
{"double_optin" => false}
有时,Mailchimp可以看到params以这样一种方式到达,它似乎不应该触发"电子邮件已经存在"错误,但它就是不起作用。感谢您的帮助。
mailchimp-api-gem的文档将订阅方法描述为:
#subscribe(id, email, merge_vars = nil, email_type = 'html', double_optin = true, update_existing = false, replace_interests = true, send_welcome = false)
而batch_subscribe显示:
#batch_subscribe(id, batch, double_optin = true, update_existing = false, replace_interests = true)
请注意,批处理方法不包括"send_welcome"参数。当我将其从订阅方法的参数列表中删除时——本质上是发送三个布尔值,而不是建议的四个布尔值时,update_existing工作得很好。这里的文档中似乎有一个错误:http://www.rubydoc.info/gems/mailchimp-api/2.0.4/Mailchimp/Lists#subscribe-实例方法
希望这能帮助其他人!