我正在使用NodeJS构建此机器人。我正在使用iFrame在Webpe上使用Skype和Embedded对其进行测试,一切工作正常。我正在尝试实现一些目标,在这里建议我应该使用DirectLine进行操作,以便在用户连接到聊天室后使用postActivity在他们连接时向他们发送消息。
现在,当阅读有关DirectLine API的文档时,似乎与正在做的事情完全不同,并且文档未显示出差异或“何时使用” DirectLine。
例如,在我的NodeJS应用程序中,紧跟NodeJS SDK的对话框是session.send(),session.sendTyping()等。
我的问题是:这是否意味着当我想使用DirectLine时需要用Activity替换整个NodeJS机器人代码?我对如何将DirectLine与现有应用程序结合使用感到困惑。 Skype频道会发生什么?我会用活动代替一切吗?我会为此使用session.sendTyping或活动吗?
答案 0 :(得分:1)
activity只是用于其中一个机器人框架通道已处理的任何事件的术语。您的机器人只会在活动中发言,因此无需更改服务器端代码即可使Directline正确与您的机器人通信。
您可能需要更改的是iframe的利用率。默认情况下,Webchat由直接渠道支持,但由于iframe是一个一体式嵌入的,因此实际上无法访问该直接渠道。
该用户要求您使用this方法,如下所示:
botConnection = new BotChat.DirectLine({secret: "<secret>"});
BotChat.App({
botConnection: botConnection,
user: { id: 'User', name: 'user'},
bot: { id: 'botid' },
resize: 'detect'
}, document.getElementById("bot"));
要在您的网站上初始化您的漫游器,以启用以下反向渠道:
botConnection
.postActivity({
from: { id: '<user>' },
value: "text",
type: 'event',
name: "ConversationUpdate"
})
.subscribe(id=> console.log("stuff" + id))
但是,如果您无法从前端启用欢迎消息,请考虑遵循主题上的this blogpost,该主题说明了如何利用服务器端的侦听器进行用户连接事件。无论如何,就不必为试图启用对活动的支持而重写任何内容,因为它们已经被利用了。