Ruby与mailchimp-api gem集成

时间:2014-11-11 17:01:19

标签: ruby-on-rails-3 mailchimp

我正在尝试使用RoR和官方mailchimp-api gem订阅一封电子邮件到多个列表。它工作,但最后四个值(double_optin,update_existing,replace_interests和send_welcome)没有更新,我收到一个错误,即电子邮件“已经存在”,即使我正在尝试将update_existing传递为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以这样一种方式到达,它似乎不应该触发“电子邮件已存在”错误,但它不会起作用。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

mailchimp-api gem的文档将subscribe方法描述为:

#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”参数。当我从订阅方法的params列表中删除它时 - 基本上按照建议发送三个布尔值而不是四个布尔值,update_existing工作得很好。这似乎是文档中的错误:http://www.rubydoc.info/gems/mailchimp-api/2.0.4/Mailchimp/Lists#subscribe-instance_method

希望这有助于其他人!