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的列表。但是,我得到了完整列表。这是设计的吗?我错过了一些其他设置来过滤掉所有不匹配的内容吗?有办法解决这个问题吗?
答案 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的未来版本。
我仍然不确定他们为什么这样做,但是我已经添加了反馈,表明他们返回了一个空的结果(以便不用无关数据来增加响应),或者改进文档。