Próbuję obsłużyć wiadomość http post z webhooka Bounce Mailgun. Wysyłając go do usługi Postbin Mailguna wszystkie dane znajdują się oczywiście. Ale teraz wysyłam ten POST do mojego serwera localhost dla celów programistycznych i dostaję tylko pustą tablicę json. Używam webhooka testowego.Webhook Mailgun Ciało POST wydaje się puste
Celem jest utrzymanie tego tak prostego, jak to możliwe poza naszą główną usługą. To dlatego, że zacząłem używać nodejs/expressjs do tworzenia samodzielnych usług sieciowych do pracy jako przekaźnik do odbierania wiadomości POST wiadomości e-mail odskakujących z Mailgun i informowania administratorów o odbijanych adresach e-mail.
Teraz nie mogę sobie wyobrazić, dlaczego nie otrzymuję tych samych danych, które są widoczne w Postbin.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mailgun = require('mailgun-js')({apiKey: 'key-...', domain: 'mymailgundomain.com'});
app.use(bodyParser.urlencoded({
extended: true
}));
function router(app) {
app.post('/webhooks/*', function (req, res, next) {
var body = req.body;
if (!mailgun.validateWebhook(body.timestamp, body.token, body.signature)) {
console.error('Request came, but not from Mailgun');
res.send({ error: { message: 'Invalid signature. Are you even Mailgun?' } });
return;
}
next();
});
app.post('/webhooks/mailgun/', function (req, res) {
// actually handle request here
console.log("got post message");
res.send("ok 200");
});
}
app.listen(5000, function(){
router(app);
console.log("listening post in port 5000");
});
biegnę to z testu Webhook Mailgun Korzystanie url jak http://mylocalhostwithpublicip.com:5000/webhooks/mailgun
struktury kod jest skopiowany z https://github.com/1lobby/mailgun-js. Prawdopodobnie brakuje tu czegoś fundamentalnego, ponieważ sam nie potrafię tego rozgryźć.
Co 'console.dir (req.headers [ 'content-type' ]) 'show po umieszczeniu w treserze trasy? – mscdex
Daje '' wieloczęściowe/dane-formularzy; boundary = 330afb68-af25-4d0a-89e2-44a10be325fd'' – Qrila