webhook的工作原理描述来自http://webhooks.pbwiki.com/ -
他们是如何工作的?
通过让用户为各种事件指定URL,应用程序将在事件发生时将数据POST到这些URL ...除此之外,您还可以:
- 通过电子邮件,IRC,Jabber,向您或任何人创建通知......
- 将数据放入另一个应用程序(实时数据同步)
- 处理数据并使用应用程序的API重新发布
- 验证数据并可能阻止应用程序使用它
谁在使用网络钩子?
DevjaVu,BitBucket,GitHub,Shopify,Versionshelf,PayPal(IPN),Jott(链接),IMified,PBwiki,Facebook(平台,排序),Mailhook.org,SMTP2Web,Astrotrain,Notifixious,Assembla,ZenDesk,Google Code
你知道webhooks有什么用处吗?
我希望看到应用程序生成的http回调的内容(即paypal或Google的pubsubhubbub).有没有人知道我可以用作http帖子的端点的简单服务并查看http帖子的内容?
真的很难让这个工作.我在Contentful中设置了webhook定义.当我在Contentful中发布条目时,它会向webhooks.example.com发送HTTP POST请求.
在该子域我运行NodeJS服务器以接受请求.我查看了Contentful API文档,它说请求正文应该包含新发布的条目.
我已经尝试了两种接收请求的方法,这两种方法都没有给我任何请求体.首先,我尝试了contentful-webhook-server NPM模块:
var webhooks = require("contentful-webhook-server")({
path: "/",
username: "xxxxxx",
password: "xxxxxx"
});
webhooks.on("ContentManagement.Entry.publish", function(req){
console.log("An entry was published");
console.log(req.body);
});
webhooks.listen(3025, function(){
console.log("Contentful webhook server running on port " + 3025);
});
Run Code Online (Sandbox Code Playgroud)
这里请求来了,我得到了消息,An entry was published但req.body未定义.如果我这样做console.log(req),我可以看到完整的请求对象,它不包括正文.
所以我尝试运行一个基本的Express服务器来接受所有的POST请求:
var express = require("express"),
bodyParser = require("body-parser"),
methodOverride = require("method-override");
var app = express();
app.use(bodyParser.json({limit: "50mb"}));
app.use(bodyParser.urlencoded({extended:true}));
app.use(methodOverride("X-HTTP-Method-Override"));
app.post("/", function(req, res){
console.log("Incoming request");
console.log(req.body);
});
Run Code Online (Sandbox Code Playgroud)
再说一遍,我得到的Incoming request消息 …
可以说我有网络应用/服务:
API用于管理某些资源(简单的CRUD操作).现在我需要的是订阅应用程序以更改不同的API资源.应用程序将对更改进行一些后台工作.
我想到了回调.因此,应用程序可以oauth orise并发布到API回调配置.
我认为这个配置应该是这样的:
{
'callback_url': 'http://3rdpartyservice.com/callback',
'resources': ['foo1', 'foo2'],
'ref_data': { 'token': 'abcd1234' }
}
Run Code Online (Sandbox Code Playgroud)
这种方式在指定的资源更改时,API会向callback_url发送请求.此请求将包含资源数据,操作(创建/更新/删除)和ref_data.
这里的目的是使这个通用足以允许第三方客户端配置这样的回调.
所以问题是:
TX
我正在考虑创建一个"Zap应用程序",我想知道是否有人使用新的.Net Webhooks这样做了.它们似乎具有RESTHooks请求的"模式",即Subcription/Publish机制.它没有很多工作的例子,我想在我花了几天实现它并发现它是不兼容的之前检查.
挂钩到Zapier的实际代码示例会很棒!
我想pending_update_count在我的机器人中清除所有内容!
以下命令的输出:
https://api.telegram.org/botxxxxxxxxxxxxxxxx/getWebhookInfo
Run Code Online (Sandbox Code Playgroud)
显然我用xxx替换了真正的API令牌
这是 :
{
"ok":true,"result":
{
"url":"",
"has_custom_certificate":false,
"pending_update_count":5154
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我5154现在有未读更新!(我很确定这个挂起的更新是错误的!因为没有人使用这个Bot!它只是一个测试Bot)
顺便说一下,这个pending_update_count数字正在快速增长!现在我正在写这篇文章,这个数字增加了51,达到了5205!
我只想清除这些待定更新.我很确定这个Bot已陷入无限循环!
有没有办法摆脱它?
PS:
我也清除了webhook网址.但没有改变!
更新:
输出getWebhookInfo是这样的:
{
"ok":true,
"result":{
"url":"https://somewhere.com/telegram/webhook",
"has_custom_certificate":false,
"pending_update_count":23,
"last_error_date":1482910173,
"last_error_message":"Wrong response from the webhook: 500 Internal Server Error",
"max_connections":40
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我得到Wrong response from the webhook: 500 Internal Server Error?
我已经将 Stripe 支付集成到我的一个网站中,并且一切正常(我正在为这个网站使用一个独特的 webhook)。
我刚刚通过我的另一个网站创建了一个完全不同的服务,并且正在将 Stripe 集成到该网站上。
但是我有一个问题,据我所知,我必须对我的两个服务使用相同的 webhook。这行不通!!我真的需要为每个服务使用单独的网络钩子……这可能吗?
PS:我在 Stripe 的文档中读到每个事件都将发送到列表中的每个 webhook ( https://dashboard.stripe.com/account/webhooks )。
请有人照亮!
首先,我不确定这是不是发布这个的地方,但这是我解决这个问题的最后一站。
我一直在尝试将 Slack WebHook 与 GitHub 存储库连接起来,但每次都失败了。
我遵循的步骤:
顺便说一句,我应该在“秘密”字段中添加什么?
请查看屏幕截图以获取更多信息。
然后我得到以下错误。
如果我做错了什么,请告诉我。
我正在使用 Azure Monitor/Log Analytics 成功触发警报。我正在尝试将警报发送到 Microsoft Teams 频道(以及用于调试的松弛频道),但没有成功。
我有一个成功触发的警报。我有一个操作组,配置了我的电子邮件、短信和 azure 应用程序推送。每次警报触发时,我都会收到这些消息。
我有另一个行动小组,其中有几个 webhooks 用于 Microsoft Teams 和 Slack 频道。我在这些频道上没有收到任何消息。
我已启用自定义“为 webhook 包含自定义 Json 负载”并粘贴了建议的 json 和以下内容
{ "AlertName":"#alertrulename", "AlertDescription":"#description", "LinkToSearchResults":"#linktosearchresults"}
我收到电子邮件/短信/推送通知,但没有收到网络挂钩的消息。我已经尝试将操作组中的通用警报模式设置为 no,这是默认设置(以及在 yes 上尝试也没有成功)。
怀疑这与此处提到的自定义有效负载 json 有关https://azure.microsoft.com/en-gb/blog/webhooks-for-azure-alerts/
关于如何将我的警报发送到团队的任何想法?
谢谢
我正在为我正在进行的项目设置松弛警报。要使用 slack 的Incoming web hook,您所要做的就是POST向 slack url 发出请求。我没有看到任何安全措施。这如何安全?考虑到即使在 https 连接中该 url 也是公开的,如果某人掌握了该 url,是否就无法发布消息?