为什么我在 Calendly 将数据发布到我的端点时收到 POST 404
Why I am getting POST 404 when Calendly is posting data to my endpoint
我按照他们的 instructions 创建了 Calendly Webhook 订阅。我的后端是用 NodeJS + Express 编写的。我在试用期间尝试实施 Calendly webhook。我在 localhost:8080 上公开了端点 /webhooks/calendly/calendlyWebhook
并且我通过 ngrok 来完成它,因为 Calendly 仅支持 https 协议。我在我的日志中看到 Calendly 向端点发送 post 请求,但我看到它是 404:POST /webhooks/calendly/calendlyWebhook 404
.
这是我的 webhook 文件 calendlyWebhook.js
const { Router } = require('express');
const calendlyWebhookRouter = Router();
calendlyWebhookRouter.post('/calendlyWebhook', async (req, res) => {
console.log("Hello from calendly webhook ✅")
return res.statusCode(200).send('Ok')
})
module.exports = {
calendlyWebhookRouter,
};
这是我的 index.js 文件,我在其中初始化路由器
...
...
const {calendlyWebhookRouter} = require('./webhooks/calendlyWebhook');
app.use('/webhooks/calendly/calendlyWebhook', calendlyWebhookRouter);
...
我到底做错了什么?
webhook 路由包含 calendlyWebhook
两次(一次在 app.use 路径中,一次在 calendlyWebhookRouter 路径中)。因此,只有当 POST 请求发送到 /webhooks/calendly/calendlyWebhook/calendlyWebhook
时才会调用 calendlyWebhookRouter
。
从 app.use 路由路径中删除 calendlyWebhook
应该可以解决问题:
app.use('/webhooks/calendly', calendlyWebhookRouter);
我按照他们的 instructions 创建了 Calendly Webhook 订阅。我的后端是用 NodeJS + Express 编写的。我在试用期间尝试实施 Calendly webhook。我在 localhost:8080 上公开了端点 /webhooks/calendly/calendlyWebhook
并且我通过 ngrok 来完成它,因为 Calendly 仅支持 https 协议。我在我的日志中看到 Calendly 向端点发送 post 请求,但我看到它是 404:POST /webhooks/calendly/calendlyWebhook 404
.
这是我的 webhook 文件 calendlyWebhook.js
const { Router } = require('express');
const calendlyWebhookRouter = Router();
calendlyWebhookRouter.post('/calendlyWebhook', async (req, res) => {
console.log("Hello from calendly webhook ✅")
return res.statusCode(200).send('Ok')
})
module.exports = {
calendlyWebhookRouter,
};
这是我的 index.js 文件,我在其中初始化路由器
...
...
const {calendlyWebhookRouter} = require('./webhooks/calendlyWebhook');
app.use('/webhooks/calendly/calendlyWebhook', calendlyWebhookRouter);
...
我到底做错了什么?
webhook 路由包含 calendlyWebhook
两次(一次在 app.use 路径中,一次在 calendlyWebhookRouter 路径中)。因此,只有当 POST 请求发送到 /webhooks/calendly/calendlyWebhook/calendlyWebhook
时才会调用 calendlyWebhookRouter
。
从 app.use 路由路径中删除 calendlyWebhook
应该可以解决问题:
app.use('/webhooks/calendly', calendlyWebhookRouter);