Mailchimp Api无法获取我发送的电子邮件地址字段



我正在尝试使用mailchimp API,以便为用户订阅现有列表
使用节点https请求,我向mailchimp服务器发送以下请求:

const url = `https://us7.api.mailchimp.com/3.0/lists/<list_id>/members?skip_merge_validation=true'`;
const options = {
method: "POST",
auth: "<name>:<API Key>",
};
const request = https.request(url, options, (response) => {
response.on("data", (data) => {
console.log(JSON.parse(data));
if (data.status === 200) {
res.redirect("/sucess");
} else {
res.redirect("/failure");
}
});
});
request.write(JSON.stringify(user_data));
request.end();
});

在发出请求之前,我console.log从前端收集的用户数据。

console.log("USER DATA : " + JSON.stringify(user_data));

这是我从API服务器得到的答案:

USER DATA : {"members":[{"email_address":"a.b@email.com","status":"subscribed","merge_fields":{"FNAME":"A","LNAME":"B"}}]}
{
type: 'http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/',
title: 'Invalid Resource',
status: 400,
detail: "The resource submitted could not be validated. For field-specific details, see the 'errors' array.",
instance: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
errors: [
{
field: 'email_address',
message: 'This value should not be blank.'
}
]
}

正如您在日志中看到的,email_address字段不是空的。
以前有人遇到过这个问题吗?有什么想法吗

提前感谢

我发现了这个问题,它与我的用户数据结构有关。它现在使用以下代码

const user_data = {
email_address: req.body.email,
status: "subscribed",
merge_fields: {
FNAME: req.body.fName,
LNAME: req.body.lName,
}
}

这适用于

{
"email_address": "real@gmail.com",
"status": "subscribed",
"merge_fields": {
"FNAME": "Name",
"LNAME": "Last Name"
}
}

提供CURL

curl --location --request POST 'https://us10.api.mailchimp.com/3.0/lists/audience_id/members' 
--header 'Authorization: Bearer API_KEY' 
--header 'Content-Type: application/json' 
--data-raw '{
"email_address": "real@gmail.com",
"status": "subscribed",
"merge_fields": {
"FNAME": "Name",
"LNAME": "Last Name"
}
}'

最新更新