我试图复制一个 facebook Messenger 机器人,但不断得到 request is not defined
。
与脸书相同的代码:
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) {..}
[...]
我错过了快递吗?谢谢
原文由 Sylar 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个例子使用了 第三方请求模块。
您也可以像这样使用本 机请求:
require('http').request()
如果您愿意,但我想说, 请求 模块非常常见,并且是一个很好的使用工具。您的
request
被注释掉,指向express.request
。如果像request()
这样使用会抛出错误,因为它不是函数。因此,您应该真正使用 Request 模块,或者调整代码以使用原生http.request
。2020 年更新
request 模块现在已弃用,因此如果您正在阅读此答案,请使用本机模块或查找流行的第三方库,如 Axios 或其他。