使用 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 个分段成员的主要内容,如果未能解决你的问题,请参考以下文章
如何写sqlserver2000存储过程?用于批量录入数据,求解