2017-02-20 18 views
4

facebook messenger botを複製しようとしていますが、引き続きrequest is not definedを取得しようとしています。 FacebookなどReferenceError:要求が定義されていません

同じコード:

function callSendAPI(messageData) { 
    request({ 
    uri: 'https://graph.facebook.com/v2.6/me/messages', 
    qs: { access_token: PAGE_ACCESS_TOKEN }, 
    method: 'POST', 
    json: messageData 

    }, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     var recipientId = body.recipient_id; 
     var messageId = body.message_id; 

     console.log("Successfully sent generic message with id %s to recipient %s", 
     messageId, recipientId); 
    } else { 
     console.error("Unable to send message."); 
     console.error(response); 
     console.error(error); 
    } 
    }); 
} 

私のノードserver.jsは、次のようになります。

const express = require('express'); 
const bodyParser = require('body-parser'); 
//const request = express.request; 
const PAGE_ACCESS_TOKEN = 'abc'; 

let app = express(); 

app.use(bodyParser.urlencoded({ extended: false })); 

// parse application/json 
app.use(bodyParser.json()); 

[...] 

function sendTextMessage(recipientId, messageText) { 
    var messageData = { 
    recipient: { 
     id: recipientId 
    }, 
    message: { 
     text: messageText 
    } 
    }; 

    callSendAPI(messageData); 
} 

function callSendAPI(messageData) {..} 

[...] 

私は急行で何かが足りないのですか?ありがとう

+0

'const request = require( 'request')' – hlfrmn

答えて

1

この例ではthird-party Request moduleを使用しています。あなたがしたい場合は、require('http').request()、私は要求モジュールは非常に一般的であり、良いツールを使用することを、言う:

またそうのようなnative requestを使用することができます。

EDIT 実際、私はあなたのコードにそのことがあることに気付きましたが、コメントアウトしました。 長い覗き見をした後、requestのコメントはexpress.requestを指しています。request()のように使用すると、機能ではないのでエラーになります。つまり、実際にリクエストモジュールを使用するか、ネイティブコードhttp.requestを使用するようにコードを調整する必要があります。

+0

はい私はリクエストが関数ではありませんでした。ありがとう – Sylar