我在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 ....还有没有人遇到过这个问题?我是不是漏掉了什么?
发布于 2021-01-25 22:10:31
虽然我可以使用.batch(),但遗憾的是,使用Promise.all()似乎还不错
(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个)。
https://stackoverflow.com/questions/63251326
复制相似问题