2016-04-14 6 views
3

を要求し、私はこのページで https://developers.facebook.com/docs/messenger-platform/quickstartFacebookのメッセンジャーのAPIは:POSTが

マイnodejsコード

app.post('/webhook/', function(req, res) { 
    messaging_events = req.body.entry[0].messaging; 
    for (i = 0; i < messaging_events.length; i++) { 
     event = req.body.entry[0].messaging[i]; 
     sender = event.sender.id; 
     if (event.message && event.message.text) { 
      text = event.message.text; 
      sendTextMessage(sender, "Text received, echo: "); 
     } 
    } 
    res.sendStatus(200); 
}); 

の手順に従って得ることができないと私は、この

TypeError: Cannot read property 'entry' of undefined 
    at /home/user/public_html/app/testbot/webhook.js:31:30 
    at Layer.handle [as handle_request] (/home/user/public_html/app/testbot/node_modules/express/lib/router/layer.js:95:5) 
    at next (/home/user/public_html/app/testbot/node_modules/express/lib/router/route.js:131:13) 
    at Route.dispatch (/home/user/public_html/app/testbot/node_modules/express/lib/router/route.js:112:3) 
    at Layer.handle [as handle_request] (/home/user/public_html/app/testbot/node_modules/express/lib/router/layer.js:95:5) 
    at /home/user/public_html/app/testbot/node_modules/express/lib/router/index.js:277:22 
    at Function.process_params (/home/user/public_html/app/testbot/node_modules/express/lib/router/index.js:330:12) 
    at next (/home/user/public_html/app/testbot/node_modules/express/lib/router/index.js:271:10) 
    at serveStatic (/home/user/public_html/app/testbot/node_modules/express/node_modules/serve-static/index.js:74:16) 
    at Layer.handle [as handle_request] (/home/user/public_html/app/testbot/node_modules/express/lib/router/layer.js:95:5) 

のようなエラーが出ます私はFacebookからのPOST要求を受け取ることができません。それをどうすれば解決できますか?

答えて

12

私は同じ問題で前に立ち往生していました。あなたは、ボディパーサーLIBを使用する必要があります。

var express = require('express'); 
var bodyParser = require('body-parser'); 

var app = express(); 
var jsonParser = bodyParser.json(); 

そして、ちょっとポストフック

app.post('/webhook/', jsonParser, function(req, res) { 
+2

への回答に感謝し、それを渡します。それは素晴らしいと完璧な作業です。今は 'console.log(text);'というメッセージが出ますが、facebookの 'sendTextMessage()'関数には別の問題があります。 Facebookのチャットにデータを送信することはできません。新しいエラーは 'ReferenceError:リクエストが定義されていません'です。あなたがコード化している間にこのエラーに気づいたことがありますか?その解決策がありますか? – ozgrozer

+3

OK私はそれをしました。それは本当にばかげた質問だった:) 'var request = require(" request ");' – ozgrozer

関連する問題