1

我正在尝试使用 Mailchimp 的 listSubscribe 为用户订阅列表。该列表有一个组(id = 9917,name = 'I am a ...'),其中包含以下选项:diner、食品服务运营商。我的目标是将用户添加为食品服务运营商。这是我的代码:

ms.listSubscribe(
    id=settings.MAILCHIMP_NEWSLETTER_LIST_ID,
    email_address=self.user.email,
    merge_vars={'FNAME': self.user.first_name,
        'LNAME': self.user.last_name,
        'GROUPINGS': 
            {'id': 9917,
            'groups': 'food service operator',}},
    double_optin=False,
    update_existing=True,
)  

当我运行这个时,我得到这个错误:

ListInvalidInterestGroupException:“”不是列表的有效兴趣分组名称:(TEST)时事通讯

如果我删除分组的东西,这会完美地工作(尽管用户没有被添加到分组中)。此外,如果我尝试使用垃圾 ID,我也会遇到同样的错误。为了确保我使用的是正确的 ID,我跑了

In [4]: ms.listInterestGroupings(id=settings.MAILCHIMP_NEWSLETTER_LIST_ID)
Out[4]: 
[{'display_order': '0',
  'form_field': 'checkboxes',
  'groups': [{'bit': '1',
    'display_order': '1',
    'name': 'food service operator',
    'subscribers': 0},
   {'bit': '2', 'display_order': '2', 'name': 'diner', 'subscribers': 0}],
  'id': 9917,
  'name': 'I am a ...'}]

因此,看来这应该可以正常工作。关于为什么不这样的任何想法?

4

1 回答 1

2

我在Mailchimp API google groups中找到了答案。

不幸的是,问题是我没有很好地阅读文档造成的。GROUPINGS 应该是一个字典数组。这是更正后的代码:

ms.listSubscribe(
    id=settings.MAILCHIMP_NEWSLETTER_LIST_ID,
    email_address=self.user.email,
    merge_vars={'FNAME': self.user.first_name,
        'LNAME': self.user.last_name,
        'GROUPINGS': [
            {'id': 9917,
            'groups': 'food service operator',},]},
    double_optin=False,
    update_existing=True,
)  
于 2012-07-19T17:12:31.770 回答