我试图复制一个facebook messenger bot,但不断得到request is not defined
。
与Facebook相同的代码:
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) {..}
[...]
型
我是不是错过了什么快递?谢谢
4条答案
按热度按时间sz81bmfz1#
这个例子使用了third-party Request module。
如果你愿意,你也可以像这样使用原生请求:
require('http').request()
,但我想说,request 模块非常常见,是一个很好的工具。你的
request
,被注解掉了,指向express.request
。如果像request()
一样使用,会抛出错误,因为它不是一个函数。所以,你应该真正使用Request模块,或者调整代码以使用原生http.request
。更新2020
request模块现在已经过时了,所以如果你正在阅读这个答案,请使用本机模块或找到一个流行的第三方库,如Axios或其他。
x7yiwoj42#
您未安装
request
模块。首先安装它
npm install --save request
,然后包含它var request = require('request');
ki1q1bka3#
我得到了同样的错误,但在一个不同的上下文比你的;当我试图导入
字符串
这个问题是由于使用
class
而不是interface
引起的lg40wkob4#
至于我,当我克隆一个使用另一个节点版本(特别是
v18.17.1
)的repo时,我得到了同样的错误,我将我的节点版本从v16...
更改为v18.18.1
,它工作了。