如何只为mailchimp列表成员选择特定字段以获取结果

时间:2018-11-06 16:34:35

标签: php mailchimp

当我尝试从列表中获取所有成员时,我收到了比我需要的更多数据。

我只想最小化4个字段的返回json,但似乎'fields'参数并没有真正起作用。

这是我的代码:

package.json

我使用以下API: https://github.com/drewm/mailchimp-api

谢谢!

2 个答案:

答案 0 :(得分:0)

您需要在字段前面加上“成员”。如果您看一下原始的JSON输出,则更清楚了为什么-这些项在一个封闭的“成员”项中返回。

答案 1 :(得分:0)

对于迟到的任何人,您必须在每个单独字段(此处为数组元素)的开头添加“members.”,因为 API 参考中没有给出明确的示例,上面的代码看起来像

$list_id = $this->_job->getListId();
$list =  $this->_MailChimp_obj->get('lists/' . $list_id . '/members', array(
    'fields' => array(
        'members.id',
        'members.email_address',
        'members.subscribed',
        'members.merge_fields' //members.merge_fields.any_subfield_name
    ),
    'count' => 50,
    'offset' => 0
));

此外,如果您将 Node.js 与 MailChimp 营销 API 一起使用,代码将是:

const mailchimp = require("@mailchimp/mailchimp_marketing");

mailchimp.setConfig({
  apiKey: "your api key",
  server: "your server prefix",
});

const listId = "your list id";
const offset = 0;
const count = 10;

const run = async () => {
  const response = await mailchimp.lists.getListMembersInfo(listId, {
    offset,
    count,
    fields: ['members.id','members.email_address','members.subscribed','members.merge_fields'],
  });

  console.log(response);
  
};

run();