1

我有一个 Facebook Messenger 机器人(用 NodeJS 编写)和一个单独的控制面板,用户可以在其中管理机器人正在使用的信息(如库存等)。其中之一是记录机器人和访问者之间的所有对话。控制面板允许管理员用户通过机器人向访问者发送消息。有一个输入框,他们可以在其中输入消息,当他们单击“发送”时,消息会发送到机器人应用程序,然后通过发送 API 将其发送回用户。

消息被记录到数据库中;那些去机器人(来自访问者)的人在收到时会被记录下来,而机器人回应的人会通过“回声”回调记录下来。

这样做的问题是机器人可以回复某些访问者命令(短语)并尝试根据输入执行某些操作。我为此使用了 Wit.ai,但由于可能的短语和关键字的范围,当有人发送文本消息时,默认模式是将其发送到 Wit.ai 进行处理。但是,如果管理员用户从控制面板向访问者发送消息,则访问者可能希望响应该消息(而不是发送机器人命令),并且该响应不应发送到 Wit.ai 进行处理。而且由于可以说的内容可能变化的范围很广,再加上他们实际上也可以在响应中使用一些关键字,在这种情况下用 Wit.ai 处理意图太不确定了。

我想知道是否有办法以某种方式识别/标记机器人发送给访问者的消息来源,所以当回声回调到来时,我可以知道它是来自常规机器人例程还是来自用户 -输入回复。就像可以与消息一起发送的一些附加元标记也将与回声一起返回,但这不会污染消息本身。这样的事情可能吗?或者有没有不同的方法可以达到相同的结果。

4

1 回答 1

0

我不知道这对你有什么帮助,但 Facebook 最近刚刚为机器人集成了一个非常神秘的标签功能。 https://developers.facebook.com/docs/messenger-platform/send-api-reference/tags

于 2017-04-09T10:47:13.677 回答