node.js - 微软机器人框架: Saving the chat history

标签 node.js botframework

我已经使用机器人框架创建了一个简单的聊天机器人,现在我正在尝试在我的设备上本地保存机器人的聊天历史记录。我使用 fs 将用户输入的值/参数保存到文件中。例如:他们的名字。

但是,我想包含整个聊天对话,即用户发送的消息和机器人给出的回复。我尝试使用 fs.appendFile(filename, session, function(err) 来捕获这些对话框,但它只在文件中显示 [Object object]

如何捕获整个聊天记录?或者至少是用户发送的任何内容?

我的代码示例:

var restify = require('restify');
var builder = require('botbuilder');


//=========================================================
// Bot Setup
//=========================================================

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url); 
});

// Create chat bot
var connector = new builder.ChatConnector({
    appId: ''
    appPassword: ''
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());

server.get('/', restify.serveStatic({
 directory: __dirname,
 default: '/index.html'
}));


var fs = require("fs");
var filename = 'chathistory.json';

//=========================================================
// Bots Dialogs
//=========================================================

var test="test";

bot.dialog('/', new builder.IntentDialog()
    .matchesAny([/hi/i, /hello/i], [
        function (session) {
            session.send('Hi, I am your chatbot.');
    session.beginDialog('/step2')
    },

    bot.dialog('/step2', [
     function (session) {
    builder.Prompts.text(session,'What is your name?');
     },
     function(session, args, next) {
        test="  , "  +args.response;
        fs.appendFile(filename, test, function(err){
        });
         session.send('Hello, ' + args.response + '. How may I help you today?');
         name = args.response;
         session.endConversation();
     }
    ])
    ])
);

最佳答案

捕获用户输入和机器人输入的一种方法是使用中间件。看看middlewareLogging示例,其中展示了日志记录场景。

关于node.js - 微软机器人框架: Saving the chat history,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44159487/

相关文章:

c# - BotFramework 在表单流中访问用户数据

c# - Bot Framework 无法使用 AddKeyboardCard 或使用 ChannelData 发送 FacebookQuickReply

node.js - 使用 express-jwt 作为中间件来验证 Azure AD 颁发的 token

javascript - 如何从迁移生成 Sequelize 模型?

node.js - node npm local install 将文件放入 ~/node_modules

c++ - 从 C++ Node.js 插件渲染文件

javascript - Node js mysql访问javascript对象

botframework - 如何使用直线 API 使聊天机器人显示为实时聊天?

azure - 为 Azure Bot 服务设置插槽或多个环境

c# - 使用 Microsoft Bot Framework 时如何使用 CSS 设置聊天窗口的样式