node.js - 使用请求包继续获取 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!");
});
解决方案
首先,根据文档,我认为您需要使用app.use(bodyParser.json())
才能在发布请求中传递参数。
其次,您应该从 MailChimp 生成一个 API 令牌并将其添加到此处Authorization": "mkouk24 Api Key"
有关此链接的更多信息:https ://mailchimp.com/help/about-api-keys/
推荐阅读
- python - 如何在 post-init 挂钩中使用 attrs 验证器?
- python - 如何在 trimesh 中加载纹理网格?
- snowflake-cloud-data-platform - 我们如何在 Snowflake 中执行 SnowSQL 中的错误处理
- algorithm - 有效地找到 item.x > n 和 item.y < n 的数组项
- python - pycontractions 的 Pip 安装错误“错误:命令错误,退出状态为 1:”
- sql - 在特定时间从数据库中获取时间并在 Azure 中安排任务
- java - Android Studio php 连接
- python - 破折号:更新图形的数据而不是更新图形的图形?
- sql - SQL Server 中“<”附近的语法不正确
- python - Pandas 标准化或标准化按类别分组