【问题标题】:Rails: How to add a newly created user's email address to MailChimp?Rails:如何将新创建的用户的电子邮件地址添加到 MailChimp?
【发布时间】:2014-09-21 03:46:52
【问题描述】:

对于上下文,我正在使用 Ruby on Rails 开发一个 Web 应用程序,并且我正在使用 MailChimp 来处理电子邮件活动。

给定一个名为 User 的 ActiveRecord 模型和一个名为 email 的属性,我如何在成功创建新用户后将用户的电子邮件发送到 MailChimp 列表?

【问题讨论】:

  • 作为一名优秀的学习者和贡献者,如果您发现任何有用的答案,您应该点赞

标签: ruby-on-rails mailchimp


【解决方案1】:

将官方mailchimp-api gem 添加到您的 Gemfile:

gem 'mailchimp-api', require: 'mailchimp'

然后运行:

bundle install

在您的 User 模型中使用 after_create 挂钩将订阅者发送到 MailChimp:

class User < ActiveRecord::Base

  after_create :add_mailchimp_subscriber


  def add_mailchimp_subscriber
    client = Mailchimp::API.new('<your mailchimp api key>')
    client.lists.subscribe('<your mailchimp list id>', {email: email}, {'FNAME' => first_name, 'LNAME' => last_name})
  end
end

这是您将订阅者添加到 MailChimp 所需的最低要求。您可能希望将 add_mailchimp_subscriber 逻辑移动到它自己的类或排队作业以异步运行它。您还应该添加一些错误处理。 client.lists.subscribe 方法将引发特定于问题的错误。例如,如果您指定的 MailChimp 列表 ID 无效,您将获得 Mailchimp::ListDoesNotExistError

您可以在此处找到官方 gem 和文档:

https://bitbucket.org/mailchimp/mailchimp-api-ruby/

【讨论】:

  • 完美答案。
【解决方案2】:

基本上,您需要的是Callbacks。您可以编写代码在after_create 回调中为您的新用户订阅mailchimp。

类似于您的user.rb 模型。

def after_create(user)
  # code to subscribe user to mailchimp
end

您可以查看blog 了解更多信息和示例。

【讨论】:

    【解决方案3】:

    您可以使用 Mailchimp API 来管理列表订阅者:http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php

    为了便于在 Rails 中使用,有几个 ruby​​ 包装器:http://apidocs.mailchimp.com/api/downloads/#ruby-rails

    因此,在模型更改上添加一些操作的常用方法是使用 Active Records 回调。所以你的代码可能看起来像这样

    class User < ActiveRecord::Base
    
      after_create :add_subscriber_to_list
    
      private
    
      def add_subscriber_to_list
        # Logic to add subscriber to list via Mailchimp API ruby wrapper
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 2011-05-07
      • 2018-01-06
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      相关资源
      最近更新 更多