首页 > 解决方案 > 使用请求包继续获取 401

问题描述

我的代码不起作用,我不知道为什么,它一直给我一个 401 表示 API 密钥丢失,所以我不知道这是怎么发生的,我想弄清楚我的问题在这件作品上的代码?

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

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){

var firstName = req.body.firstName;
var lastName = req.body.lastName;
var email = req.body.email;

var data = {
    members: [
        {
            email_address: email,
            status: "subscribed"
        }
    ]
    };

    var jsonData = JSON.stringify(data);

    var options = {
    url: "https://us20.api.mailchimp.com/3.0/lists/listId"
    method: "POST",
    headers: {
        "Authorization": "mkouk24  Api Key"
    },

    body: jsonData
};

request(options, function(error,response,body){
    if (error) {
        console.log(error);
    } else {
        console.log(response.statusCode);
    }
});

});

app.listen(3000, function() {
    console.log("Server is running on port 3000!");
});

标签: node.jsexpressrequestbody-parsermailchimp-api-v3.0

解决方案


首先,根据文档,我认为您需要使用app.use(bodyParser.json())才能在发布请求中传递参数。

其次,您应该从 MailChimp 生成一个 API 令牌并将其添加到此处Authorization": "mkouk24 Api Key"

有关此链接的更多信息:https ://mailchimp.com/help/about-api-keys/


推荐阅读