Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mailchimp API v2.0按列表id筛选活动如果不匹配,则不进行筛选_Api_Filter_Mailchimp - Fatal编程技术网

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。 我仍然不知道他们为什么这样做,但我添加了反馈,建议他们返回一个空结果,这样就不会用不相关的数据堆积响应,或者改进文档