在尝试设置分组时从mailsnake获取错误

时间:2012-07-18 21:27:57

标签: python mailchimp

我正在尝试使用Mailchimp的listSubscribe来订阅用户列表。该列表有一个组(id = 9917,name ='我是......),这些选项包括:餐馆,食品服务运营商。我的目标是将用户添加为食品服务运营商。这是我的代码:

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 ...'}]

所以,似乎这应该是正常的。对于为什么不这样做的任何想法?

1 个答案:

答案 0 :(得分:2)

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

不幸的是,问题是由于我没有充分阅读文档。 GROUPINGS应该是一系列dicts。这是更正后的代码:

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,
)