Tag: direct line botframework

使用botbuilder越区切换时,从DirectLine获取401错误

我正在研究一个新的机器人,并试图实现人工切换。 我正在使用Directline 3.0在BotFramework-WebChat客户端和托pipe在Azure Bot Service上的我的机器人之间进行通信。 我的问题是,当我的机器人尝试从用户发送消息到代理或代理到用户时,我从Directline API中收到401错误。 为了进一步解释这个问题,我们只需要讨论观察状态。 在代码中,客户消息通过中间件被拦截。 如果状态被确定为正在观看 ,则将消息消息路由到机器人和观看代理。 从bot发送给用户的消息,使用session.send('foo')发送,但工作正常,但是从bot到agent的消息发送如下: address = conversation.agent; // the commented codes makes the whole thing work… // address.useAuth = true; agentMessage = new builder.Message() .address(address) .text(message.text); bot.send(agentMessage, (err) => { console.log(err); }); 不工作,除非我添加一个useAuth标志。 我在ChatConnector.js实现中find了这个标志,它似乎决定了(正如你猜测的那样)消息在发送时是否使用授权的请求。 你可以在我的上面的代码中看到我可以自己设置这个标志,但是这是一个冒险的解决scheme,它似乎是绕过了真正的应用程序逻辑。 这整个事情感觉不对,我觉得我错过了一些东西,但我不知道如何使这些请求工作,而无需直接设置useAuth 。 以下是我的切换客户端的相关代码。 我已经从下面删除了一些代码,只关注来自客户的消息,而对话处于等待状态。 /* this middleware is used by the bot […]

Microsoft Bot Framework请求中的MissingProperty错误

我正在使用Microsoft Bot Framework的应用程序。 我的应用程序是用Node编写的。 在这个时候,我正在尝试使用下面的代码发布一个活动: var https = require('https'); var token = '[receivedToken]'; var conversationId = '[conversationId]'; var options = { host: 'directline.botframework.com', port: 443, headers: { 'Authorization': 'Bearer ' + token' }, path: '/v3/directline/conversations/' + conversationId + '/activities', method: 'POST' }; var request = https.request(options, (res) => { console.log(res.statusCode); var body = []; res.on('data', […]

版本兼容性问题Azurefunction的Node和DirectlineJS es6导出

最终目标: 使用DirectLine秘密创build运行Botframework-DirectlineJS并绑定到Bot (Framework)天青function。 问题: 上面提到的Botframework-DirectlineJS使用es6 export和Azurefunction支持Node 6.5.0 max doc 。 因此,如何在Azure函数的index.js文件中成功导入DirectlineJS? Errror “` 2017-05-23T07:17:45.939 Exception while executing function: Functions.adapter. mscorlib: D:\home\site\wwwroot\adapter\importexportwrapper.js:1 (function (exports, require, module, __filename, __dirname) { import { DirectLine } from 'botframework-directlinejs'; ^^^^^^ SyntaxError: Unexpected token import at Object.exports.runInThisContext (vm.js:76:16) at Module._compile (module.js:528:28) at Object.Module._extensions.(anonymous function) [as .js] (D:\home\site\wwwroot\node_modules\node-hook\index.js:73:14) at Module.load (module.js:473:32) at […]

我可以托pipeMS Bot框架Node.js实例本地

我们已经构build了一个MS Bot框架bot,在对话期间使用我们现有的内部本地API。 我们希望通过将Web聊天组件放入我们现有的面向内部的本地应用程序的DOM中来释放此机器人。 使用我们现有的架构, 我们自然也想在内部托pipe这个机器人 –以利用我们现有的所有configuration和部署stream程。 我们知道,无论如何,机器人都必须与LUIS沟通 – 这对我们来说是很好的; 它不需要Azure直接连接到我们内部业务数据API的更复杂(更大的攻击面,更less的中央IT买入)设置。 我认为这个图更清晰: 我们可以实现底层托pipeconfiguration中所描述的内容吗? 编辑1:我们是否也可以托pipe直接线路或类似的连接器本地,而不必编写自定义连接器? 另外,我们可以通过这种连接器与我们的机器人聊天,而不必为DOM编写自定义聊天组件/小部件吗? (只要指向我们的频道,networking聊天组件就可以正常工作。) 这里的最终目标是让我们所有的聊天stream量保持在本地,因为这是一个数据驱动的聊天机器人,服务于敏感数字。 在另一个完全可以在本地运行的框架中重新开发这个框架需要花费更less的时间,而不是从我们的中央IT部门获得批准。 注意:我知道Azure堆栈预览。 最低的硬件要求(也可能是订阅成本)是极端矫枉过正的。 (毕竟,我们正在谈论一个Node应用程序。) 这不是这个问题的重复,因为这个问题也解决了直接/线路连接器本地托pipe的关键因素,其他问题假设连接器仍然在Azure上运行。