PHP调用Mailchimp API时fields外参数被忽略如何正确传参
PHP版Mailchimp Marketing API查询参数传递正确示例
核心规则
Mailchimp 官方V3版PHP SDK的lists->getListMembersInfo方法仅支持两个入参:
- 第一个参数为字符串类型的邮件列表ID
- 第二个参数为包含所有查询参数的关联数组,字段筛选、分页、过滤等所有规则都需要放在该数组内
正确调用示例
// SDK初始化 $client = new MailchimpMarketing\ApiClient(); $client->setConfig([ 'apiKey' => '你的API_KEY', 'server' => '你的SERVER_PREFIX', // 通常为apiKey最后一段,比如us12、us21 ]); $response = $client->lists->getListMembersInfo( 'xx_list_id_xxx', [ // 字段筛选:如需校验返回数量,建议保留total_items顶层返回字段 'fields' => 'total_items,members.email_address,members.status,members.full_name,members.ip_signup,members.location.latitude,members.location.longitude,members.location.country_code', 'count' => 300, // 单次请求最大支持1000条,超出会被自动截断 // 可按需追加其他官方支持的查询参数,示例如下 'offset' => 0, // 分页偏移量,用于拉取超过1000条的全量数据 'status' => 'subscribed' // 仅返回已订阅状态的成员 ] ); // 结果验证 // 总符合条件的成员数 echo $response->total_items; // 当前接口返回的成员条数,配置count=300时此处正常返回300 echo count($response->members);
全量成员拉取示例(成员数超过1000时)
$allMembers = []; $offset = 0; $pageSize = 1000; do { $res = $client->lists->getListMembersInfo('xx_list_id_xxx', [ 'fields' => 'total_items,members.email_address,members.status,members.full_name', 'count' => $pageSize, 'offset' => $offset ]); $allMembers = array_merge($allMembers, $res->members); $offset += $pageSize; } while ($offset < $res->total_items);
常见失效原因排查
- 传参时未将所有查询参数放入第二个关联数组,单独拆分参数传入无效
- 配置
fields参数时未包含total_items等顶层字段,导致无法校验返回结果 - count参数传入字符串类型,部分低版本SDK要求必须传入整数
内容的提问来源于stack exchange,提问作者ravenshill
相关产品推荐
相关产品推荐

