使用MailChimp 3.0和Gibbon 2.x检索member_id

时间:2015-08-30 00:04:20

标签: ruby-on-rails mailchimp ruby-on-rails-4.2 gibbon

在我的应用程序的用户设置中,用户可以通过选中一个框来订阅或取消订阅MailChimp列表。我在检索用户MailChimp member_id时遇到了一些麻烦。

我用:

创建了一个.env文件
MAILCHIMP_API_KEY = "my_api_key"
MAILCHIMP_LIST_ID = "my_list_id"

我创建了一个名为gibbon.rb的初始化程序:

Gibbon::Request.api_key = ENV["MAILCHIMP_API_KEY"]
Gibbon::Request.timeout = 15

我在user.rb中使用此方法

def mailchimp_news
  @mailchimp_list_id = ENV["MAILCHIMP_LIST_ID"]
  @gibbon = Gibbon::Request.new
  if self.news_email == true
    @gibbon.lists(@mailchimp_list_id).members.update(body: {
    email_address: self.email,
    status: "subscribed",
    merge_fields: {FNAME: self.name,
                   LNAME: ""}
    })
  elsif self.news_email == false
    @gibbon.lists(@mailchimp_list_id).members(member_id).update(body: { status: "unsubscribed" })
end

结束

并通过检查后调用

after_save :mailchimp_news

我收到此错误:undefined local variable or method `member_id'。我如何获得member_id?

1 个答案:

答案 0 :(得分:9)

How To Manage Subscribers帮助页面中,在API v3中,订阅者ID是用户电子邮件地址的小写版本的MD5哈希。

因此,您希望使用Digest::MD5.hexdigest(self.email.downcase)