首页 > 解决方案 > 将请求发布到 mailchimp

问题描述

我想向 mailchimp api 发出发布请求。我不知道该怎么做。当我在邮递员上对其进行测试时,它会出错。另外我不确定如何请求正文中的数据。

const express = require('express');
const Mailchimp = require('mailchimp-api-v3');
const MailChimpConfig = require('./.env');

const app = express();
const mailchimp = new Mailchimp(MailChimpConfig.MAILCHIMP_API_KEY);

app.get('/api/memberList',(req, res) => {
  mailchimp.get(`/lists/${MailChimpConfig.MAILING_LIST_ID}/members`)
  .then(function(results){
    res.send(results);
  }).catch(function(err){
    res.send(err);
  });
});
app.post('/api/create',(req, res) => {
    mailchimp.post(`/lists/${MailChimpConfig.MAILING_LIST_ID}/members`, {
        email_address: email,
        status: 'subscribed',
        merge_fields: {
            'FNAME': firstName,
            'LNAME': lastName,
        }
    })
    .then(function(results){
        res.send(results);
    }
    ).catch(function (err) {
        res.send(err);
    });
});      

当我在邮递员上测试它时,我应该创建一个包含电子邮件、名字和姓氏的新成员。

标签: node.jsmailchimp

解决方案


使用axios模块发送请求

app.post('/api/create',(req, res) => {
    axios({
        method: 'POST',
        json: true,
        url: `${MailChimpConfig.URL}/lists/${MailChimpConfig.MAILING_LIST_ID}/members`,
        headers: {
            Authorization: `apiKey ${MailChimpConfig.apiKey}`
        },
        body: {
            email_address: email,
            status: 'subscribed',
            merge_fields: {
                'FNAME': firstName,
                'LNAME': lastName,
            }
        }
    })
    .then(function(results){
            res.send(results);
        }
    ).catch(function (err) {
        res.send(err);
    });
});

推荐阅读