这是我想要做的:
当然,我使用原生的Podio webhooks。我为item.create,item.update和item.delete创建了一个钩子。外部网址是正确的,然后点击"验证"按钮向外部应用程序发送成功呼叫。
然而,这些行动都没有实际效果。我创建,更改和删除了项目 - 没有。只需点击"验证"按钮会导致与外部应用程序的任何通信。
为什么这可能不起作用的常见原因是什么?
答案 0 :(得分:1)
以下是我如何设法验证我的 Node.JS webhook 端点并使用 Express.JS
使其活动:
const express = require("express");
const app = express();
const https = require('https');
app.use(express.urlencoded());
app.use(express.json());
app.post('/', function(request, response){
console.log( "POST", request.body);
// VERIFICATION >>
const postData = JSON.stringify({ code: request.body.code });
const options = {
hostname: 'api.podio.com',
port: 443,
path: '/hook/' + request.body.hook_id + '/verify/validate',
method: 'POST',
headers: {
'content-type': 'application/json',
'accept': 'application/json'
}
};
const req = https.request(options, (res) => {
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
res.on('end', () => {
console.log('No more data in response.');
});
});
req.on('error', (e) => {
console.error(`problem with request: ${e.message}`);
});
req.write(postData);
req.end();
// << VERIFICATION
response.send(request.body);
});
app.listen(443);