我有一个试图模仿反向通道示例的聊天机器人。
一切都是正确的,除非我无法理解下面的代码究竟应该如何工作。
botConnection.activity$
.filter(function (activity) {
console.log("show me the activity name passed" + activity.name);
return activity.type === 'event' && activity.name === 'changeBackground';
})
.subscribe(function (activity) {
changeBackgroundColor(activity.value);
});
我假设我需要在我的机器人中命名一些changeBackground? activity.type也不应该是'message'而不是event?
当我执行console.log向我显示activity.name时,我传递的每条消息都是“未定义”。我在哪里设置活动的名称,以便我可以触发更改背景?
答案 0 :(得分:1)
activity
是一个通用信封,其中message
(用户和机器人之间发送的文本和/或附件)是最常见的类型。如果您希望客户端和机器人无形地向用户交换信息,则可以使用event
类型。按照惯例,Web Chat等客户将忽略它们。
编写方式时,您的示例代码将从机器人发送到客户端的每个活动记录下来。字段name
适用于event
类型但不包含message
的活动,这就是它显示为undefined
的原因。
在此示例中,changeBackground
是客户端函数的名称,只要机器人发送类型为event
的活动,它就会执行某些操作。
您现在缺少的是实际发送该事件的(服务器)机器人代码。有关此示例,请参阅Ryan Volum的backchannel sample bot。