如果没有匹配项,则列表ID的Mailchimp API v2.0过滤器广告系列不会进行过滤

时间:2014-09-15 23:01:12

标签: api filter mailchimp

http://apidocs.mailchimp.com/api/2.0/campaigns/list.php

我希望像

这样的东西
{
  "apikey": "12345",
  "filters": {
    "list_id": "abcde",
    "exact": true
  }
}

如果有一个广告系列有list_id =" abcde"或者总数= 0,如果没有&#t; t(使用exact = true),则返回总计= 1的列表。但是,我得到了完整列表。这是设计的吗?我错过了一些其他设置来过滤掉所有不匹配的内容吗?有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

好的,所以这是我想出来的,除非其他一些决议:

返回结果集时,请对第一个结果(data.data [0])进行健全性检查。

如果存在真匹配,则data.data [0] .list_id = list_id

如果没有匹配,并且全套已经回来,则data.data [0] .list_id不能= list_id

这个额外的步骤并不理想,imo,但它确实可以解决问题。

if data.data[0].list_id === list_id
  // the list is a match, return the results
else
  // the list is not a match, do something else

答案 1 :(得分:0)

这是另一个解决方案:

如果不匹配,完整响应将提供错误对象

"errors": [{
  "filter": "list_id",
    "value": "abcde",
    "code": 200,
    "error": "Invalid MailChimp List ID: abcde"
}]

和一组匹配的空对象

"errors": []

因此,您可以先查找此错误对象并做出相应的决定来处理结果。

我收到MailChimp的一些澄清(并在此处经许可发布),这是预期的:

  

要提供更多信息,即使使用无效过滤器,广告系列/列表调用完成的行为也是预期的行为。正如您所提到的,返回中包含一个错误数组,并且可以检查该数组是否收到任何错误,以确定调用是否按预期完成。

     

我当然可以看到这可能是意料之外的,以便在尝试过滤时收到完整的广告系列列表。如果您不希望返回错误,但未返回广告系列数据,我们建议您将此建议添加到我们的反馈表单中:http://mailchimp.com/contact/feedback/这肯定是我们的开发人员可以做的事情考虑API的未来版本。

我仍然不确定他们为什么这样做,但是我已经添加了反馈,表明他们返回了一个空的结果(以便不用无关数据来增加响应),或者改进文档。