2

我有一个试图模仿反向通道示例的聊天机器人。

一切大部分都是正确的,除了我无法理解下面的代码应该如何工作。

  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 也不应该是“消息”而不是事件吗?

当我执行 console.log 向我显示 activity.name 时,我传递的每条消息都是“未定义的”。我究竟在哪里设置活动的名称,以便我可以触发更改背景?

4

1 回答 1

1

Anactivity是一种通用信封,其中message(用户和机器人之间发送的文本和/或附件)是最常见的类型。如果您希望让您的客户端和机器人在用户不可见的情况下交换信息,那么您可以使用该event类型。按照惯例,它们将被Web Chat等客户端忽略。

按照它的编写方式,您的示例代码会记录从机器人发送到客户端的每个活动。该字段name适用于 typeevent但不是的活动message,这就是它显示为 的原因undefined

在这个例子changeBackground中是一个客户端函数的名字,它会在机器人发送一个类型的活动时做一些事情event

您现在缺少的部分是实际发送该事件的(服务器)机器人代码。有关此示例,请参阅 Ryan Volum 的反向通道示例机器人

于 2017-09-29T15:33:23.533 回答