使用 mailchimp-api-v3 批量调用不超过 10 个分段成员

Posted

技术标签:

【中文标题】使用 mailchimp-api-v3 批量调用不超过 10 个分段成员【英文标题】:No More than 10 Segment Members in A Batch Call with mailchimp-api-v3 【发布时间】:2020-11-24 19:29:30 【问题描述】:

我在node js 中使用mailchimp-api-v3 已经有一段时间了,我认为它是一个很棒的包,而且很容易使用。但是,最近我需要使用其.batch() 方法为多个细分市场GET 细分市场成员。

不幸的是,即使有超过 10 个成员并且在调用中指定了超过 10 的 count 查询参数值,每个段也仅返回 10 个成员。与

const mc  = require('./mc-config');
const Mailchimp = require('mailchimp-api-v3');
const mailchimp = new Mailchimp(mc.apiKey);
const list_id   = mc.list_id;

如预期的那样,以下每个都返回超过 10 个成员:

mailchimp.request(method:'GET',path:`/list/$list_id/segments/$segment_id/members`, query: count: 1000)....;
//or
mailchimp.get(`/lists/$list_id/segments/$segment_id/members?count=1000`)....;

但是,每个段最多只能返回 10 个段成员:

mailchimp.batch([
    method:'GET',path:`/lists/$list_id/segments/$segment_id_1/members`, query: count:1000,
    method:'GET',path:`/lists/$list_id/segments/$segment_id_2/members`, query: count:1000,
    method:'GET',path:`/lists/$list_id/segments/$segment_id_3/members`, query: count:1000,
    method:'GET',path:`/lists/$list_id/segments/$segment_id_4/members`, query: count:1000,
    method:'GET',path:`/lists/$list_id/segments/$segment_id_5/members`, query: count:1000
])....;

我认为可能 query 参数被完全忽略了,但是当我添加以下参数时,我为少于 10 个成员的段返回了更多成员:

.... include_cleaned:true, include_unsubscribed:true ....

有没有其他人遇到过这个问题?我有什么遗漏吗?

【问题讨论】:

【参考方案1】:

使用Promise.all() 似乎工作得很好,可惜我可以使用.batch()

(async () => 
    try 
        const segments = [segment_id1, segment_id2, segment_id3, segment_id4];
        const members = await Promise.all(
            segments.map(tag => mailchimp.get(`/lists/$list_id/segments/$tag/members?count=1000`))
        );
        //see how many members are returned
        console.log( members.map(m => m.members.length) );
     catch( err ) 
        console.log( err );
     finally 
        console.log( 'All done' );
    
)();

对于具有超过 10 个成员的每个段/标签,返回所有成员(最多 1000 个)。

【讨论】:

以上是关于使用 mailchimp-api-v3 批量调用不超过 10 个分段成员的主要内容,如果未能解决你的问题,请参考以下文章

使用postman的批量传参

zabbix批量添加主机监控-zabbix api调用

如何写sqlserver2000存储过程?用于批量录入数据,求解

spring aop 动态代理批量调用方法实例

Mailchimp API 3.0 批量订阅 - Mailchimp3 PY

用postman批量调用接口