【发布时间】:2015-11-24 07:31:23
【问题描述】:
在我的应用程序中,我想在用户创建时自动订阅 MailChimp 列表。我找到的所有文档都集中在 MailChip API 2.0 和 Gibbon 1.x 上。
这是我目前所拥有的:
我创建了一个 .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
然后创建了一个 Job:
class SubscribeUserToMailingListJob < ActiveJob::Base
queue_as :default
def perform(user)
gibbon = Gibbon::Request.new
# I am getting errors from this line
gibbon.lists(ENV["MAILCHIMP_LIST_ID"]).members.create(body: {email_address: user.email, status: "subscribed", merge_fields: {FNAME: user.name, LNAME: ""}})
end
end
在我的 user.rb 中检查后我有这个
after_create :subscribe_user_to_mailing_list
并在私有下添加了这个:
def subscribe_user_to_mailing_list
SubscribeUserToMailingListJob.perform_later(self)
end
我收到来自gibbon.lists(ENV["MAILCHIMP_LIST_ID"]).members.create(body: {email_address: user.email, status: "subscribed", merge_fields: {FNAME: user.name, LNAME: ""}}) 的 400 错误
********编辑********
根据这个conversation。
我认为发生错误是因为该电子邮件地址已存在于列表中。我第一次遇到错误时,电子邮件地址已添加到 MailChimp 列表中,但由于另一个错误,该用户未在我的应用程序中创建。现在,当我尝试使用相同的电子邮件地址创建用户时,会弹出错误 400,因为该电子邮件已经存在。这也可以防止在我的应用程序中创建用户。
请有经验的人验证一下这是否正确?
【问题讨论】:
标签: ruby-on-rails mailchimp ruby-on-rails-4.2 gibbon