Webhooks是我们工作流引擎的强大部分。要了解有关工作流程的更多信息,访问这篇文章。
为什么创建一个端点?
可以创建端点以控制Webhook接收器的身份验证和上下文。如果从可用的API需要其他信息,或者需要自定义代码来处理传入Webhook的有效载荷,则可以将消费者端点设置为如下处理。
如何为Webhook创建一个端点
以下是在JavaScript中创建端点的步骤(例如示例):
- 设置Web服务器。我们将使用节点
表示
图书馆
Const Express =要求('Express');//快递Web服务器
const bodyparser =要求('body-parser');// Express Application / Json Parser
const dotenv =要求('dotenv');//提供访问环境变量
dotenv.config();
Const App = Express();
app.use(bodyParser.json());
const port = process.env.port ||3000;
app.listen(端口,()=> {
console.log(`Webhook消费者在http:// localhost:$ {port}`);
});
- 验证X-MM签名,以抵抗的HMAC
Webhook秘密
配置webhook时创建。我们将使用节点加密
库,并表达了使用此功能来检查每个请求。
const crypto =要求('crypto');
function viplatemmsignature(req,res,next){
const mmsignature = req.headers ['x-mm-signature'];
const mmtimestamp = req.headers ['x-mm-timestamp'];
const uri = req.headers ['x-mm-request-uri'];
//创建验证字符串
const prehashedsignature =
`$ {procest.env.webhook_secret}
$ {mmtimestamp}
邮政
$ {url}
$ {json.stringify(body)}`;
//使用Webhook秘密创建HMAC
const hmac = crypto.ccreatehmac('sha256',process.env.webhook_secret);
const gearysignature = hmac.update(prehashedsignature).digest('hex');
if(生成的是== msignature){
return res.status(403).send('签名不匹配');
}
下一个();
}
app.use(validatemmsignature);
- 创建自定义端点!
app.post('/',(req,res)=> {
res.status(200).send(“收到的”帖子“);
});app.post('/ dosomestuff',(req,res)=> {
const data = req.body.workflow;
sendmessage(data.message);
res.status(200).send('发送消息');
});
完美的例子
Const Express =要求('Express');//快递Web服务器
const bodyparser =要求('body-parser');// Express Application / Json Parser
const dotenv =要求('dotenv');//提供访问环境变量
const crypto =要求('crypto');
dotenv.config();
Const App = Express();
app.use(bodyParser.json());
function viplatemmsignature(req,res,next){
const mmsignature = req.headers ['x-mm-signature'];
const mmtimestamp = req.headers ['x-mm-timestamp'];
const uri = req.headers ['x-mm-request-uri'];
//创建验证字符串
const prehashedsignature =
`$ {procest.env.webhook_secret}
$ {mmtimestamp}
邮政
$ {url}
$ {json.stringify(body)}`;
//使用Webhook秘密创建HMAC
const hmac = crypto.ccreatehmac('sha256',process.env.webhook_secret);
const gearysignature = hmac.update(prehashedsignature).digest('hex');
if(生成的是== msignature){
return res.status(403).send('签名不匹配');
}
下一个();
}
app.use(validatemmsignature);
app.post('/',(req,res)=> {
res.status(200).send(“收到的”帖子“);
});
const port = process.env.port ||3000;
app.listen(端口,()=> {
console.log(`Webhook消费者在http:// localhost:$ {port}`);
});
有问题吗?
联系我们的支持团队support@machinemetrics.com.。
注释
0评论
请登入留下评论。