将bot作为实体的会话数据存储到Azure存储表(Node.js)中

时间:2018-04-11 10:20:52

标签: node.js azure azure-storage botframework bots

我目前正在研究Bot,在我的项目中,我想存储机器人数据(即用户,会话和私人会话属性包),基本上是用户输入和响应使用Node.js在azure存储中返回的内容。我可以登录控制台但不能登录天蓝色存储。

请告诉我如何实施上述概念。

1 个答案:

答案 0 :(得分:1)

要在Azure表存储中存储会话状态数据,您可以轻松利用Manage custom state data with Azure Table storage for Node.js

要存储整个会话消息历史记录,您可以利用receivesend中间件,添加自定义逻辑以将历史记录插入到talbe存储中。请考虑以下代码段:

bot.use({
    receive: (evt, next) => {
        console.log(evt);
        if (evt.type == 'message') {
            azureTableClient.insertOrReplace(evt.address.user.id + `-` + new Date().valueOf(), evt.type, `[USER to BOT]: ${evt.text}`, false, ((err, etag, res) => {
                if (err) {
                    console.log(er)
                }
            }))
        }
        next();
    },
    send: (evt, next) => {
        // console.log(evt);
        azureTableClient.insertOrReplace(evt.address.user.id + `-` + new Date().valueOf(), evt.type, `[BOT to USER]: ${evt.text}`, false, ((err, etag, res) => {
            if (err) {
                console.log(er)
            }
        }))
        next();
    }
})