2016-12-03 7 views
1

Я пытаюсь сделать бот телеграммы (для обучения) с помощью nodejs, используя официальный телеграмму бота api. Я установил webhook для героку. Я могу ответить на запрос, но через некоторое время тот же запрос приходит через некоторое время. Нормально ли получить тот же запрос или я не ответил на предстоящий запрос. когда я вызываю метод getwebhookinfo, он показывает pending_update_count, но мой код ответил на все запросы, исходящие из webhook. Я использую это, чтобы ответить на ближайшие просьбыКак реагировать на запрос телеграмм бота 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 , (req,res)=>{ 
    var body = req.body; 
    console.log(body); 
    console.log(body.message.entities); 

    request.post((reply_url+'/sendMessage'),{form:{chat_id:body.message.chat.id,text:"POST REPLY SUCCESS",reply_to_message_id:body.message.message_id}}); 
}); 

app.listen(port,() => 
{ 
    console.log("Server is Started at - "+port); 
}); 
+0

попробуйте добавить далее в функции обратного вызова функции API (req, res, next) и функции next() после выполнения res.send («Работа»). Аналогично относится к другому API POST ('/'+config.bot_token). В случае успешного выполнения и ошибки обратного вызова/sendMessage API вызывают res.status(). Send(), а затем next(); –

+0

У меня есть Typeerror, вы можете переписать код для меня. – MaxySpark

+0

ok Я получил это res.status (200) .send ('OK') – MaxySpark

ответ

2

попробуйте добавить следующий в функции обратного вызова функции API (REQ, Рез, рядом) и вызвать следующую функцию() после того, как вы res.status (201) .send («Working»).

Аналогично применимо к другому API POST ('/'+config.bot_token), при успешном обращении к ошибке/sendMessage API вызовите функцию res.status(). send() и затем next();

Всегда звоните следующему() в качестве стандартной практики при работе с express.js