Javascript 如何解决转发邮件的问题?

Javascript 如何解决转发邮件的问题?,javascript,node.js,bots,vk,Javascript,Node.js,Bots,Vk,我使用“botact”库创建了一个聊天机器人,但是 当我试图在vk社区API工作页面上验证我的bot时,我在“Windows PowerShell”中收到一个错误(我在这里启动了bot服务器): 文件“getLastMessage.js”包含以下代码: const getLastMessage = (msg) => { if (msg.fwd_messages && msg.fwd_messages.length) { return ge

我使用“botact”库创建了一个聊天机器人,但是 当我试图在vk社区API工作页面上验证我的bot时,我在“Windows PowerShell”中收到一个错误(我在这里启动了bot服务器):

文件“getLastMessage.js”包含以下代码:

    const getLastMessage = (msg) => {
      if (msg.fwd_messages && msg.fwd_messages.length) {
        return getLastMessage(msg.fwd_messages[0])
      }

      return msg
    }

module.exports = getLastMessage
const express = require("express");
const bodyParser = require("body-parser");
const { Botact } = require("botact");
const server = express();
const bot = new Botact({
  token: "token_for_my_group_i_just_hided_it",
  confirmation: "code_for_my_group_i_just_hided_it"
});
server.use(bodyParser.json());

server.post("/",bot.listen);
server.listen(8080);

因此,我对
botact
了解不多,但根据当您点击
/
路线时的代码,您需要通过一个包含
对象
属性的实体

现在,由于这是用于
vk bots
的bot框架,它可能会自动发送请求主体。您可以通过记录请求主体来确保

server.post('/', async (req,res)=>{
    console.dir(req.body);
    await bot.listen(req, res);
});
:

现在,当您执行
bot.listen
express将
req
作为第一个参数传递。和
{type,secret,object,group_id}
这些字段从
req.body
中被分解

然后
object
被传递到
getLastMessage
函数

因此,对于请求主体,您至少需要

{ "object": {} }
这是我在邮递员将其添加到请求正文后得到的
200ok
输出

POC代码:

    const getLastMessage = (msg) => {
      if (msg.fwd_messages && msg.fwd_messages.length) {
        return getLastMessage(msg.fwd_messages[0])
      }

      return msg
    }

module.exports = getLastMessage
const express = require("express");
const bodyParser = require("body-parser");
const { Botact } = require("botact");
const server = express();
const bot = new Botact({
  token: "token_for_my_group_i_just_hided_it",
  confirmation: "code_for_my_group_i_just_hided_it"
});
server.use(bodyParser.json());

server.post("/",bot.listen);
server.listen(8080);

请添加用于转发消息的代码。@AritraChakraborty这就是我用于bot服务器的所有代码。Mb我错过了什么?const express=require('express')const bodyParser=require('body-parser')const{Botact}=require('Botact')const server=express()const bot=new Botact({token:'token_for_my_组_i_just_hidded_it'),确认:'code_for_my_组_i_just_hidded____it'})bot on(function(ctx){console.log(ctx.body)})server.use(bodyParser.json())server.post('/',bot.listen)server.listen(80)@iglebovvv您可以在这里控制台.log(msg)并添加结果吗?@Zrna我更改了“msg”上的console.log参数:bot.on(function(ctx){console.log(msg)},但出现了相同的错误:TypeError:无法读取Botact.getLastMessage上未定义的“fwd_messages”属性(C:\Users\whoami\Desktop\Bot test\node\u modules\botact\lib\utils\getLastMessage.js:2:11)位于botact.module.exports(C:\Users\whoami\Desktop\Bot test\node\u modules\botact\lib\methods\listen.js:29:28)