Articles of webhooks

如何响应电报僵尸Webhook请求? 相同的请求重复

我正在使用官方的电报bot api来制作一个使用nodejs的电报机器人(用于学习目的)。 我设置了一个webhook heroku。 我可以回复这个请求,但是经过一段时间之后,同样的请求会再次出现。 得到相同的请求是正常的,还是我没有回应接下来的请求。 当我调用getwebhookinfo方法时,它显示了pending_update_count,但是我的代码确实响应了来自webhook的所有请求。 我用这个来回复即将到来的请求 var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var config = require('./lib/config'); var request = require('request'); var port = process.env.PORT || 3000; var reply_url = "https://api.telegram.org/bot"+config.bot_token; app.use(bodyParser.json()); app.get('/',function(req,res) { res.send("Working"); request({ url: "https://api.telegram.org/bot"+config.bot_token+'/getMe', json : true }, (err,res,body)=>{ console.log(body); }); }); app.post('/'+config.bot_token , […]

HMAC签名与github中的x-hub-signature不匹配

我正在处理来自github的传入Webhook,并且想要validationx-hub-signature。 我使用hmac来散列“秘密”,然后比较这两个哈希值。 问题是他们从来不匹配。 这是我的设置: router.route("/auth") .post((req, res) => { var hmac = crypto.createHmac("sha1", process.env.WEBHOOK_SECRET); var calculatedSignature = "sha1=" + hmac.update(JSON.stringify(req.body)).digest("hex"); console.log(req.headers["x-hub-signature"] === calculatedSignature); // Returns false console.log(req.headers["x-hub-signature"]) // => sha1=blablabla console.log(calculatedSignature) // => sha1=foofoofoo res.end(); }); 我已经尝试了一切,但不能使它工作。 想知道如果hmac.update()应该保存另一个参数比JSON.stringify(req.body) 。 有谁知道他们为什么不匹配?

基于时间的通知服务

我正在处理用户订阅计划并且到期的订阅。 所以基本上每个用户商店都有一个expiration字段。 我希望能够在用户计划一过期就能得到通知。 现在,我有一个工作,每天运行一次所有用户,并检查是否有人过期,但理想情况下,我希望得到一个服务器回发或某种事件,每当用户过期而不运行这一天。 你能想到任何处理这些事情的第三方服务/数据库/其他工具吗? 很多服务,例如Stripe,当用户的订阅被更新/过期时,都会通过webhook通知您。 他们只是像我一样反复地工作? 希望我已经说清楚了,希望能帮助我把search引向Google。 我目前的堆栈是Mongodb,Node.js,AWS 谢谢

将多重意图映射到使用一个DialogFlowApp的actionMap的一个函数

我正在使用Dialogflowbuild立一个应用程序。 用户回答一些问题,稍后可以查看他们的答案。 我的问题是与build立服务器返回用户以前的答案。 这是迄今为止的代码,意图是QUESTION_1和QUESTION_2,参数是GRATEFUL_1和GRATEFUL_2: 'use strict'; process.env.DEBUG = 'actions-on-google:*'; const App = require('actions-on-google').DialogflowApp; const functions = require('firebase-functions'); // a. the action names from the Dialogflow intents const QUESTION_1 = 'Question-1'; const QUESTION_2 = 'Question-2'; // b. the parameters that are parsed from the intents const GRATEFUL_1 = 'any-grateful-1'; const GRATEFUL_2 = 'any-grateful-2'; exports.JournalBot = functions.https.onRequest((request, […]

为什么电报设置webhook后不发送更新?

我可以通过Telegram getUpdates API获取更新,而在使用有效的SSL证书或自签名证书设置webhook后,它会显示: {"ok":true,"result":true,"description":"Webhook was set"} 但它不会发送任何更新到我的webhook链接(我检查了Nginx和node.js访问日志文件),我尝试了很多curl命令为setWebhook API与没有证书,但仍然没有结果: curl -s -X POST https://api.telegram.org/bot<TOKEN>/setWebhook -d url='https://www.example.tech/<TOKEN>/webhook' jq . curl -F "url=https://www.example.tech/<TOKEN>/webhook" -F "certificate=@./www_example_tech.crt" https://api.telegram.org/bot<TOKEN>/setWebhook

Nodejs – Expressjs – validationwebify的shopify

我正在尝试validation在开发环境中从shopify webhook发送的hmac代码。 然而shopify不会发送一个webhook发送到一个非活的端点的请求,所以我使用requestbin捕获请求,然后使用postman发送到我的本地networking服务器。 从shopify 文档 ,我似乎做的一切正常,也尝试应用在node-shopify-auth verifyWebhookHMAC函数中使用的方法。 但迄今为止这一切都没有奏效。 代码从来不匹配。 我在这里做错了什么? 我的代码来validationwebhook: function verifyWebHook(req, res, next) { var message = JSON.stringify(req.body); //Shopify seems to be escaping forward slashes when the build the HMAC // so we need to do the same otherwise it will fail validation // Shopify also seems to replace '&' with \u0026 … […]

webhook是什么意思?

我已经阅读http://en.wikipedia.org/wiki/Webhook,但我仍然不清楚webhook的概念。 我对webhook有以下怀疑: 任何人都可以用真实世界的例子来解释webhook的用法吗? 2.为什么我要在应用程序中使用webhook?

通配符或正则expression式节点在中间件上表示装载path

我想定义不同的中间件,具体取决于path的外观。 事情是,path可能会警惕; 我想例如支持以下path: /chat/auth/test /chat/auth/add /chrome/auth/test /chrome/add 每次auth在path中,我都希望auth中间件被调用, 聊天和chrome我希望他们各自的中间件被调用。 app.js: // Middleware authentication var chatAuthenticate = require('./server/middleware/chat-authenticate'); app.use('/chat', chatAuthenticate(addon)); var authAuthentication = require('./server/middleware/auth-authenticate'); app.use('/auth', authAuthentication()); 我明白,我可以添加多个条目到app.js的每个可能的组合,如/ chat / auth和/ chrome / auth,它不会增加复杂性,但我只是好奇,如果有可能解决这与通配符或正则expression式:)

试图嘲笑github webhook请求,得到:“X-Hub-Signature不匹配blob签名”

这是一个小代理服务器设置来处理github webhooks: require('dotenv').config(); var http = require('http'); var createHandler = require('github-webhook-handler'); var handler = createHandler({ path: '/webhook', secret: process.env.GIT_WEBHOOK_SECRET }); http .createServer(function(req, res) { handler(req, res, function(err) { res.statusCode = 404; res.end('no such location'); }); }) .listen(8080); handler.on('error', function(err) { console.error('Error:', err.message); }); handler.on('push', function(event) { console.log( 'Received a push event for %s to %s', […]

如何validation超级webhook api?

优步文件说 此字段的值是webhook HTTP请求正文的hexHMAC签名,使用客户端密钥作为密钥,SHA256作为哈希函数。 但是HTTP请求体是什么? 我认为这是从webhook( https://developer.uber.com/docs/webhooks#section-example-post )收到的JSON正文。 如果是这样,那么如何在NodeJS中validation它作为HMAC的encryption模块不接受JSON [我尝试过JSONstring化,但它会生成一个不同的哈希]。 或者如何将JSON转换为缓冲区,因为这是下一个最佳select 如果不是,那我该用什么? [UPDATE1]用于任务的代码: app.post("/",function(req,res){ const crypto = require('crypto'); var input = res.body var str_input=JSON.stringify(input) const hmac = crypto.createHmac('sha256', '<CLIENT SECRET>'); hmac.update(str_input); console.log(hmac.digest('hex')); // print same as below console.log("e034ac7db29c3c0c10dfeced41a6cd850ed74c1c3c620863d47654cc7390359a") })