【问题标题】:Mailchimp API for Rails - list.subscribe(:double_optin => false) not workingRails 的 Mailchimp API - list.subscribe(:double_optin => false) 不起作用
【发布时间】:2014-01-10 01:25:35
【问题描述】:

我正在使用 mailchimp-api gem,可以通过提交电子邮件并将确认电子邮件发送到已注册但我想禁用 double_optin 标志的电子邮件来使提交的电子邮件正常工作。我正在尝试这样做:

@mc = Mailchimp::API.new('my api key here')
@mc.list.subscribe('list_id', {'email' => params[:email]}, :double_optin => false)

这仍在向该电子邮件地址发送确认电子邮件。

我真的不喜欢它重定向到 mailchimp 页面以让您确认订阅并且必须单击另一个按钮才能重定向到该站点的方式。如果您可以自定义确认电子邮件,那将是一回事,但拥有这个通用的确认页面很糟糕。

我想知道您是否必须拥有付费帐户才能切换 :double_optin 标志?

【问题讨论】:

    标签: ruby-on-rails api mailchimp


    【解决方案1】:

    这是我从mailchimp-api使用的

    订阅(id,电子邮件,merge_vars = nil,email_type = 'html',double_optin = true,update_existing = false,replace_interests = true,send_welcome = false)⇒ 哈希

    double_optin 是要传递的参数

    所以,我用了:

    client.lists.subscribe(@list_id, email, nil, 'html', false)
    

    【讨论】:

      【解决方案2】:

      这只是对上面@Jordan 的回答进行了扩展,以解释为什么它有效以及为什么接受的答案不正确。

      如果您使用mailchimp-api gem,您可以在documentation 中看到单个订阅的格式为subscribe(id, email, merge_vars = nil, email_type = 'html', double_optin = true, update_existing = false, replace_interests = true, send_welcome = false)。经过大量的猜测和测试,我发现他们不希望您传递参数names,而只是传递值。因此,虽然我最初在函数中传递 double_optin: false,但他们真的只是希望您将 false 作为第 5 个参数传递。换句话说,这对我有用:

      mailchimp = Mailchimp::API.new('mailchimp_api_key')
      subscribe = mailchimp.lists.subscribe(
        'list_ID_number',
        { email: user.email },
        { fname: user.first_name, lname: user.last_name },
        'html',
        false,
        false,
        false,
        false
      )
      

      请注意,第二个和第三个参数(email 和 merge_vars)是作为散列传递的,因为这是在上面引用的文档中定义这些参数的方式。

      进行该更改(删除参数名称)后,订阅直接通过而没有确认电子邮件。

      【讨论】:

        【解决方案3】:

        最终让它与以下内容一起使用:

        @mc = Mailchimp::API.new('my api key here')
        @mc.list.subscribe({:id => 'list_id', :email => {:email => params[:email]}, :double_optin => false})
        

        注意这里的区别是@mc.list.subscribe 中的每个参数都在一个哈希中。

        【讨论】:

        • 这不起作用,生成此错误“参数数量错误(给定 1,预期 2..8)”
        【解决方案4】:

        使用subscribe 方法接受的答案不起作用,仍会发送确认电子邮件,但使用batch_subscribe 方法很容易做到这一点。

        首先,为您要添加的每个订阅者(或仅一个)创建一个包含哈希的数组,如下所示:

        subscribers = [{ "EMAIL" => { "email" => user.email},
                         :EMAIL_TYPE => 'html',
                         :merge_vars => { "NAME" => user.name
                                        }
                      }]
        

        然后,使用 batch_subscribe 方法,像这样:

        mailchimp = Mailchimp::API.new(MAILCHIMP_API_KEY)
        mailchimp.lists.batch_subscribe(MAILCHIMP_LIST_ID, subscribers, false, false, false)
        

        最后的三个“假”依次是:double_optin、update_existing 和 replace_interests。您可以将它们设置为 true 或 false,但如果您想跳过发送确认电子邮件,则 double_optin 需要为“false”。

        这是documentation for the batch_subscribe 方法。

        【讨论】:

          【解决方案5】:

          在通过 mailchimp-api gem 之后,我找到了这个解决方案

          @mc.list.subscribe('list_id', { email: params[:email] }, nil, double_optin = false)
          

          【讨论】:

            猜你喜欢
            • 2017-09-26
            • 2016-05-09
            • 2014-07-19
            • 2012-06-22
            • 1970-01-01
            • 2015-07-17
            • 1970-01-01
            • 1970-01-01
            • 2015-10-07
            相关资源
            最近更新 更多