ReferenceError:请求未定义

新手上路,请多包涵

我试图复制一个 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 许可协议

阅读 488
1 个回答

这个例子使用了 第三方请求模块

您也可以像这样使用本 机请求require('http').request() 如果您愿意,但我想说, 请求 模块非常常见,并且是一个很好的使用工具。

您的 request 被注释掉,指向 express.request 。如果像 request() 这样使用会抛出错误,因为它不是函数。因此,您应该真正使用 Request 模块,或者调整代码以使用原生 http.request

2020 年更新

request 模块现在已弃用,因此如果您正在阅读此答案,请使用本机模块或查找流行的第三方库,如 Axios 或其他。

原文由 Marian 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题