2016-12-03 12 views
1

私は公式の電報ボットAPIを使ってnodejsで電報ボット(学習目的のため)を作ろうとしています。私はherokuにwebhookを設定しました。 私はリクエストに返信することができますが、しばらくしてからしばらくしてから同じリクエストが再度来ます。同じ要求を受けるのが普通ですか、それとも次の要求に応答しませんでした。私がgetwebhookinfoメソッドを呼び出すと、pending_update_countが表示されますが、私のコードはwebhookからのすべての要求に対して応答しました。 私が来リクエストにAPI関数のコールバック関数(REQ、RES、次)に次の追加どのように応答するにはボットの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

try add次にAPIのコールバック関数 'function(req、res、next)'を呼び出し、res.send( 'Working')を実行した後next()関数を呼び出します。他のPOST API( '/' +config.bot_token)でも同様です。/sendMessage APIの成功と失敗のコールバックで、res.status()。send()とnext(); –

+0

私はあなたが私のためにコードを書き換えることができますTypeerrorを持っている。 – MaxySpark

+0

ok私はres.status(200).send( 'OK')を持っています – MaxySpark

答えて

2

試みを返信し、あなたがres.status(201)を行った後、次の()関数を呼び出すためにこれを使用します.send( 'Working')

他のPOST API( '/'+config.bot_token)にも似ていますが、/ sendMessage APIの成功とエラーのコールバックではres.status()。send()と

express.jsで作業する場合は、常に標準的な方法としてnext()を呼び出してください。

関連する問題