【发布时间】:2020-03-13 15:06:12
【问题描述】:
我正在尝试将 MailChimp 的 API 集成到我的 React 应用程序中,这将允许用户授权他们的 MailChimp 帐户在我的应用程序中使用。我还没有找到关于它的教程,所以我正在关注这个只使用 express 的教程:https://www.codementor.io/mattgoldspink/integrate-mailchimp-with-nodejs-app-du10854xp
我已经通过 Mailchimp 设置了我的应用程序/我的客户端密码/客户端 ID 等:
重定向 URI
```http://127.0.0.1:3001/mailchimp/auth/callback````
我保留了与教程相同的快速代码,除了我将我的客户端密码放在 .env 文件中:
server.js
const querystring = require('querystring');
const mailchimpClientId = `${process.env.MC_CLIENT}`
app.get('/mailchimp/auth/authorize', function (req, res) {
res.redirect('https://login.mailchimp.com/oauth2/authorize?' +
querystring.stringify({
'response_type': 'code',
'client_id': mailchimpClientId,
'redirect_uri': 'http://127.0.0.1:3000/mailchimp/auth/callback'
}));
});
但是,在教程中,回调函数是在一个 HTML 文件中,如下所示:
<!doctype html>
<html>
<head>
<title>Integrate MailChimp</title>
</head>
<body>
<a class="btn btn-primary" href="/mailchimp/auth/authorize">Connect with MailChimp</a>
</body>
</html>
我已经添加了这个(使用 JSX 语法):
MailChimp.jsx
class MailChimp extends Component {
render() {
return (
<div>
<h1>MailChimp Auth</h1>
<a href={'http://127.0.0.1:3000/mailchimp/auth/authorize'}>Mailchimp</a>
</div >
)
}
}
export default withRouter(MailChimp);
单击我的 React 应用程序路由 localhost:3001/mailchimp 中的该链接后,我会被发送到 mailchimp,在那里我成功地使用我的帐户(不是请求权限的帐户)登录,然后我返回到 react 应用程序。
但是,我收到以下错误:
GET /mailchimp/auth/callback 404 2.818 ms - 162
Failed to load resource: the server responded with a status of 404 (Not Found)
我在网上搜索,试图找到一个使用 React & Express for MailChimp Oauth 进行应用授权的工作示例,但我没有找到。我的问题是,我是否在重定向中设置了错误,或者在 React 中处理此请求是否有更好的建议?
【问题讨论】:
-
使用
localhost代替127.0.0.1有什么不同吗? -
@GBWDev 是的,文档要求您使用 127.0.0.1 而不是 localhost。
-
我可以看看你的回购吗?我需要实现相同的,谢谢
-
@KaleemElahi 我这里有一个使用 GITHUB 进行 OAuth 访问的示例:github.com/seanbfield/pern
标签: node.js reactjs mailchimp mailchimp-api-v3.0