【发布时间】:2016-12-05 01:45:39
【问题描述】:
我正在尝试使用官方电报机器人 api 用 nodejs 制作一个电报机器人(用于学习目的)。我为heroku设置了一个webhook。 我能够回复请求,但一段时间后,同样的请求会在一段时间后再次出现。收到相同的请求是正常的还是我没有响应即将到来的请求。当我调用 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 , (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);
});
【问题讨论】:
-
尝试在 API
function(req, res, next)的回调函数中添加 next 并在执行 res.send('Working") 后调用 next() 函数。类似适用于其他 POST API ('/'+ config.bot_token).在/sendMessage API调用res.status().send()的成功和错误回调中再调用next(); -
我遇到了 Typeerror,你能帮我重写代码吗?
-
好的,我知道了 res.status(200).send('OK')
标签: javascript node.js webhooks telegram telegram-bot