【问题标题】:Recast.ai: TypeError: Cannot read property 'attachment' of undefinedRecast.ai:TypeError:无法读取未定义的属性“附件”
【发布时间】:2019-04-21 21:34:22
【问题描述】:

我希望我的 recast.bot 回复用户的回复。这是代码,但我收到下面的错误消息。如何解决这个问题?

Bot Server is running on port 5002
TypeError: Cannot read property 'attachment' of undefined
    at new Message (C:\FD\Node\node_modules\recastai\lib\apis\resources\message.js:66:31)
    at Connect.handleMessage (C:\FD\Node\node_modules\recastai\lib\apis\connect\index.js:49:30)
    at C:\FD\Node\ct2Nbot.js:28:19
    at Layer.handle [as handle_request] (C:\FD\Node\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\FD\Node\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\FD\Node\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\FD\Node\node_modules\express\lib\router\layer.js:95:5)
    at C:\FD\Node\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\FD\Node\node_modules\express\lib\router\index.js:335:12)
    at next (C:\FD\Node\node_modules\express\lib\router\index.js:275:10)

我正在关注他们的 SDK:https://github.com/RecastAI/SDK-NodeJS/wiki/Receive-and-send-messages

    const express = require('express');
    const bodyParser = require('body-parser');
    const recastai = require('recastai').default;
    const build = new recastai.build('xxxxxx', 'en');

    var client = new recastai('xxxxxx')

    const app = express();
    const port = 5002;
    app.use(bodyParser.json());

   app.post('/', function(req, res) {
       client.connect.handleMessage(req, res, onMessage)
    })
    app.listen(port, () => {
        console.log('Bot Server is running on port ' + port);
    })  

    function onMessage (message) {
      var content = message.content    
      var type = message.type    
      message.addReply([{ type: 'text', content: 'Hello, world' }])
      message.reply()
        .then(res => console.log('message sent'))
    }

【问题讨论】:

    标签: artificial-intelligence chatbot sap-conversational-ai


    【解决方案1】:

    在处理消息函数中,您正在使用获取消息有效负载中不存在的 .attachment 属性。使用新的构建器,您可以直接在构建器中管理这些消息,而无需事先构建后端

    【讨论】:

    • 感谢您的反馈。新建筑商是什么意思?新 SDK ?
    • 构建器直接连接到机器人连接器,机器人连接器将负责为您解析消息:) 除非您尝试连接的通道不是机器人列表的一部分连接器管理
    【解决方案2】:

    变化:

    app.use(bodyParser.json())

    收件人:

    app.use(bodyParser.urlencoded());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2020-04-06
      • 2020-10-30
      • 2019-10-09
      • 1970-01-01
      相关资源
      最近更新 更多