使用 Mailchimp 的 API 将订阅者添加到列表

Posted

技术标签:

【中文标题】使用 Mailchimp 的 API 将订阅者添加到列表【英文标题】:Adding subscribers to a list using Mailchimp's API 【发布时间】:2020-08-09 03:13:06 【问题描述】:

我刚刚开始做所有 API 的事情—— 我正在尝试使用他们的 API 将数据上传到 Mailchimp。 运行服务器时我没有收到任何错误,但数据不会更新 (我确实从 html 表单中获取了值,它们会显示在超级终端中) 这是我的代码

const bodyParser=require("body-parser");
const request=require("request");
const https=require("https");

const app=express();

app.use(express.static("public")); 
app.use(bodyParser.urlencoded(extended:true));

app.get("/",function(req,res)  

    res.sendFile(__dirname+"/signup.html");
);

app.post("/",function(req,res)  

    const firstName=req.body.Fname;
    const lastName=req.body.Lname;
    const email=req.body.email;

    console.log(firstName,lastName,email);

    const data=
        
            members:[
                
                    email_adress:email,
                    status:"subscribed",
                    merge_fields:
                        
                            FNAME:firstName,
                            LNAME:lastName
                        
                
            ]
        ;
    const jsonData=JSON.stringify(data);

    const url="https://us8.api.mailchimp.com/3.0/lists/b8e36ded50"; 
    const options=
        
            methods:"POST",
            auth:"lidor:56599763339503b7bac161913940d98d-us8" 
        
    const request=https.request(url,options,function(response)
            
                response.on("data",function(data)
                        
                            console.log(JSON.parse(data));
                        )
            )
    request.write(jsonData);
    request.end();


);

app.listen(3000,function()

    console.log("server has started on port 3000");
);

请帮帮我!!

【问题讨论】:

【参考方案1】:

试试这个

var mailchimpInstance   = 'your_prefix_server',
    listUniqueId        = 'your_listId',
    mailchimpApiKey     = 'your_api_key';

app.post('/signup', function (req, res) 
    request
        .post('https://' + mailchimpInstance + '.api.mailchimp.com/3.0/lists/' + listUniqueId + '/members/')
        .set('Content-Type', 'application/json;charset=utf-8')
        .set('Authorization', 'Basic ' + new Buffer.from('any:' + mailchimpApiKey ).toString('base64'))
        .send(
          'email_address': req.body.email,
          'status': 'subscribed',
          'merge_fields': 
            'FNAME': req.body.firstName,
            'LNAME': req.body.lastName
          
        )
            .end(function(err, response) 
              if (response.status < 300 || (response.status === 400 && response.body.title === "Member Exists")) 
                res.send('Signed Up!');
               else 
                res.send('Sign Up Failed :(');
              
          );
);

来自https://www.codementor.io/@mattgoldspink/integrate-mailchimp-with-nodejs-app-du10854xp

他还使用“superagent”模块而不是“request”模块。有效!

【讨论】:

REQUEST 模块也被弃用了

以上是关于使用 Mailchimp 的 API 将订阅者添加到列表的主要内容,如果未能解决你的问题,请参考以下文章

使用注册表单而不是 API 将 MailChimp 订阅者添加到组

使用 Mailchimp api v3.0 将订阅者添加到分段

通过 API 将 Mailchimp 成员添加为“未订阅”

如何通过 api 向 mailchimp 订阅者添加“标签”

向 MailChimp 添加新订阅者返回错误请求

无法使用 MailChimp API 3.0 将用户添加到组