Node.js Webhook不向外部应用程序发送数据

Node.js Webhook不向外部应用程序发送数据,node.js,post,webhooks,podio,Node.js,Post,Webhooks,Podio,以下是我想做的: 在某个应用程序中创建项目时,webhook会将该项目中包含的数据发送给外部应用程序 编辑或删除项目时也会发生同样的情况 当然,我使用的是原生的podiowebhook。我为item.create、item.update和item.delete创建了一个钩子。外部URL是正确的,单击“验证”按钮将成功调用外部应用程序 但是,这些操作实际上都不起作用。我已经创建、更改和删除了项目-什么都没有。只有单击“验证”按钮才能与外部应用程序进行任何通信 这可能不起作用的常见原因是什么?您

以下是我想做的:

  • 在某个应用程序中创建项目时,webhook会将该项目中包含的数据发送给外部应用程序
  • 编辑或删除项目时也会发生同样的情况
当然,我使用的是原生的podiowebhook。我为item.create、item.update和item.delete创建了一个钩子。外部URL是正确的,单击“验证”按钮将成功调用外部应用程序

但是,这些操作实际上都不起作用。我已经创建、更改和删除了项目-什么都没有。只有单击“验证”按钮才能与外部应用程序进行任何通信


这可能不起作用的常见原因是什么?

您是否激活了该webhook?来自Podio文档

在Webhook激活之前,必须验证URL。创建webhooks后,立即向URL端点发送hook.verify通知。然后,端点必须将代码返回到验证操作。事件将仅在完成验证后发送到端点

命令行curl的示例:
请记住注入正确的
access\u token
hook\u id
verification\u code

curl-H“内容类型:application/json”-H”授权:OAuth2 [access_token]“-X POST-d”{'code':[verification_code]}”


下面是我如何使用
Express.JS
验证Node.JS webhook端点并使其处于活动状态的方法:

const express=require(“express”);
常量app=express();
常量https=require('https');
app.use(express.urlencoded());
使用(express.json());
app.post(“/”,函数(请求,响应){
console.log(“POST”,request.body);
//验证>>
const postData=JSON.stringify({code:request.body.code});
常量选项={
主机名:“api.podio.com”,
港口:443,
路径:'/hook/'+request.body.hook_id+'/verify/validate',
方法:“POST”,
标题:{
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”
}
};
const req=https.request(选项,(res)=>{
res.setEncoding('utf8');
res.on('数据',(块)=>{
log(`BODY:${chunk}`);
});
res.on('结束',()=>{
log('响应中没有更多数据');
});
});
请求开启('错误',(e)=>{
错误(`problemwithrequest:${e.message}`);
});
请求写入(postData);
请求结束();

//我在看,但这只给出了PHP和Ruby的示例。此外,这些依赖于为Podio编写的库,不适用于通用解决方案。您能告诉我POST请求应该去哪里的完整URL以及内容应该是什么样的完整示例吗?感谢您分享您的解决方案。我已经丢失了访问Podio项目,但这看起来应该是可行的。