使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id
Posted
技术标签:
【中文标题】使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id【英文标题】:Retrieve member_id with MailChimp 3.0 and Gibbon 2.x 【发布时间】:2015-11-24 08:17:17 【问题描述】:在我的应用程序的用户设置中,用户可以通过选中一个框来订阅或取消订阅 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?
【问题讨论】:
您的 Ruby 代码中有一个错误,并且在调用 Mailchimp API 之前引发了一个错误。您指的是一个名为member_id
的变量或方法,并且没有定义。第一步是修复这个错误。
【参考方案1】:
来自How To Manage Subscribers 帮助页面,在 API v3 中,订阅者 ID 是用户电子邮件地址的小写版本的 MD5 哈希。
所以你会想要使用Digest::MD5.hexdigest(self.email.downcase)
。
【讨论】:
以上是关于使用 MailChimp 3.0 和 Gibbon 2.x 检索 member_id的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Gibbon Export API 调用为 Mailchimp 传递过滤器
使用 Gibbon 创建标签时出错(Ruby MailChimp 客户端)
如何使用 Gibbon (rails wrapper) 直接访问 Mailchimp 上的 body 变量
Gibbon/Mailchimp API 请求在兴趣分组内创建兴趣