node.js - 微软 bot 框架结束时的回调

标签 node.js aws-lambda botframework serverless-framework

我正在使用带有 nodejs 的 Microsoft Bot 框架开发聊天机器人,我想使用无服务器框架将其部署在 aws lambda 上,但为此,我需要调用 lambda 回调。

我找不到如何在处理消息结束时进行回调(保存数据并发送所有必要的消息)。

我尝试模拟响应并调用回调,但没有成功,Microsoft bot 框架继续处理消息,这是我当前的处理程序

'use strict';
const DynamoDbStorage = require('./dynamo-db-storage').DynamoDbStorage
let storage = new DynamoDbStorage()
const connector = require('./channel')(storage)

module.exports.message = (event, context, callback) => {
   connector.verifyBotFramework(context, getHandler(callback));
};

function getHandler(callback) {
   let status = 200
   return {
      status: (code) => { status = code },
      send: (data) => {
         const response = {
             statusCode: 200,
             body: JSON.stringify(data),
         };
         callback(null, response)
     }
   }
 }

这是我的 channel.js

const builder = require('botbuilder');
function getChannel(storage) {

    const connector = new builder.ChatConnector({
        appId: process.env.MICROSOFT_APP_ID,
        appPassword: process.env.MICROSOFT_APP_PASSWORD
    });


    const bot = new builder.UniversalBot(connector, {
        storage: storage
    });

    //Bot logic
    //...

    return connector
}

module.exports = getChannel;

最佳答案

您链接的代码似乎没有调用 res 对象上的发送函数。您是否尝试过向其添加调用 callback 函数的 end() 函数。

function getHandler(callback) {
    let status = 200
    return {
        status: (code) => { status = code },
        send: (data) => {
            const response = {
                statusCode: 200,
                body: JSON.stringify(data),
            };
            callback(null, response)
        },
        end: () => callback(null, "end called");
    }
 }

关于node.js - 微软 bot 框架结束时的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40335932/

相关文章:

node.js - 在 WebStorm 中创建 react 应用程序

javascript - 每次重新加载后,Node.js Web 应用程序 chrome 内存使用量都会增加

botframework - 在 Microsoft Bot Framework 上连接两个机器人

amazon-web-services - 如何将 API Gateway API 中的路径参数映射到 Java Lambda 的请求对象

c# - 连接机器人与模拟器

botframework - QnA Maker 对类似问题给出错误结果

node.js - 如何使用 Google Calendar API 和 NodeJS 列出用户的可用日历

node.js - 如何在nodejs中泛化两个相似的数组

aws-lambda - Quarkus AWS Lambda 无效入口点错误 : fork/exec/var/task/bootstrap: exec format error Runtime. InvalidEntrypoint

python - 通过 AWS Lambda 连接 FTP