7

我试图弄清楚如何使用 Rails 中的 Gibbon gem 自动将订阅者添加到 MailChimp 中的特定兴趣组?

我发现这篇文章详细介绍了这样做的非 Rails 方法:http ://roman.tao.at/uncategorized/mailchimp-api-listsubscribe-listbatchsubscribe-and-groups/

我想弄清楚如何使用 Gibbon gem 实现该功能:https ://github.com/amro/gibbon

仅供参考,我也是 MailChimp 和 Rails 的新手。

4

2 回答 2

10

最后,经过数小时的代码阅读。我找到了我正在寻找的例子!

感谢 TJ Moretto 在 Google Groups线程中提供此内容:

我正在使用长臂猿 gem,但遇到了相同类型的问题。这是我必须格式化参数以最终使其正常工作的方法:

gb.list_subscribe({:id => "#{list.id}",
                   :email_address => user.email,
                   :update_existing => true,
                   :double_optin => false,
                   :send_welcome => false,
                   :merge_vars => {'FNAME' => "#{user.first_name}",
                                   'LNAME' => "#{user.last_name}",
                                   'GROUPINGS' => {0 => {'id' => grouping.id, 'groups' => "#{challenge.name}"}}}
                  })

希望有帮助。

Mailchimp 团队 - 根据每个人在尝试执行此操作时遇到的问题数量(跨所有编程语言),我建议您更新 API 文档以使其更加清晰。

于 2012-09-25T05:05:52.707 回答
5

MailChimp API 2.0 版和 Gibbon 1.0 版的更新(供@Calin 和后代使用)。以下是对先前版本的必要更改。现在可以像这样访问 API 对象:

gb = Gibbon::API.new

并列出这样的方法:

gb.lists.subscribe(params)

最后,:email_address参数已被参数替换,该:email参数应被赋予以下形式的值:该值本身应该是带有一个键的散列,要么是要么'email''leid'并且值应该是订阅者的电子邮件地址或 MC 的唯一地址订户的标识符 (LEID)。

所以一个完整的订阅调用可能看起来像这样:

gb = Gibbon::API.new
gb.lists.subscribe(:id => "ed6d1dfef4",
                   :email => 
                     { "email" => "example@domain.com" },
                   :merge_vars =>
                     {:groupings =>
                       {
                         0 => { :id => "95", :groups => ["Some Group", "Another Group"]},
                         1 => { :id => "34", :groups => ["A Third Group"]}
                       }
                     },
                    :update_existing => "true",
                    :double_optin => "false",
                    :replace_interests => "false")
于 2013-09-04T16:11:11.460 回答