我正在使用带有nodejs的Microsoft Bot框架开发一个Chatbot,我想使用无服务器框架在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对象上的send函数.你有没有尝试添加一个调用回调函数的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"); } }