Mailchimp API v2.0按列表id筛选活动如果不匹配,则不进行筛选
我想是这样的Mailchimp API v2.0按列表id筛选活动如果不匹配,则不进行筛选,api,filter,mailchimp,Api,Filter,Mailchimp,我想是这样的 { "apikey": "12345", "filters": { "list_id": "abcde", "exact": true } } 如果有一个活动的list_id=abcde,则返回total=1的列表;如果没有使用exact=true,则返回total=0的列表。然而,我得到了完整的列表。这是故意的吗?我是否缺少一些其他设置来过滤所有不匹配?有办法解决这个问题吗?好的,这就是我想到的,除非有其他解决办法: 返回结果集后,对第一个结果数据执
{
"apikey": "12345",
"filters": {
"list_id": "abcde",
"exact": true
}
}
如果有一个活动的list_id=abcde,则返回total=1的列表;如果没有使用exact=true,则返回total=0的列表。然而,我得到了完整的列表。这是故意的吗?我是否缺少一些其他设置来过滤所有不匹配?有办法解决这个问题吗?好的,这就是我想到的,除非有其他解决办法: 返回结果集后,对第一个结果数据执行健全性检查。数据[0] 如果存在真正的匹配项,则选择data.data[0].list\u id=list\u id 如果不存在匹配项,并且已返回完整集,则data.data[0].list\u id不能=list\u id 在我看来,这个额外的步骤并不理想,但它确实起到了作用
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
下面是另一个解决方案: 如果不匹配,完整响应将提供一个错误对象
"errors": [{
"filter": "list_id",
"value": "abcde",
"code": 200,
"error": "Invalid MailChimp List ID: abcde"
}]
和一组匹配的空对象
"errors": []
因此,您可以首先通过查找此错误对象并做出适当的决策来处理结果
我收到了MailChimp的一些澄清,并将其发布在这里,并获得了许可,这是出于预期目的:
为了提供更多信息,活动/列表调用完成时的行为(即使过滤器无效)是预期行为。正如您所提到的,返回中包含一个错误数组,可以检查该数组中是否存在任何接收到的错误,以确定调用是否按预期完成
我当然可以看出,在尝试筛选时收到完整的活动列表可能会出乎意料。如果您希望返回一个错误,如果没有返回的活动数据,我们建议在我们的反馈表单中添加这个建议:这当然是我们的开发人员可以考虑的未来版本的API。
我仍然不知道他们为什么这样做,但我添加了反馈,建议他们返回一个空结果,这样就不会用不相关的数据堆积响应,或者改进文档