Ruby与mailchimp-api-gem的集成



我正试图用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-实例方法

希望这能帮助其他人!

最新更新