Facebook Messenger 机器人:第一次交互与同一命令的后续交互不同?

Facebook Messenger bot: 1st interaction different to subsequent for same command?

有谁知道如果聊天用户是第一次与机器人互动,是否可以 return 向聊天用户发送不同的消息等?

例如,如果用户第一次说 "hello"(或任何其他内容),机器人可能会响应 "Hello there!"

如果用户稍后打招呼,机器人可能会回应 "Hello, again!"

查看开发人员文档,我正在努力寻找答案:https://developers.facebook.com/docs/messenger-platform

对于上下文,我也在使用 https://api.ai 服务。

目前 API.ai 开箱即用是不可能的,您必须构建一个自定义 webhook,将用户 ID 保存到数据库并在新会话中检查它。

作为一个(非常)hacky 的解决方法,您可以尝试在第一次问候之后输出一个上下文,并且您使用输入和输出该上下文的每个其他意图,基本上记住用户已经通过 'permanent' 语境。

完成此操作的一种方法是设置一个 "get started" 按钮:

https://developers.facebook.com/docs/messenger-platform/messenger-profile/get-started-button

这也可能有帮助:

https://developers.facebook.com/docs/messenger-platform/messenger-profile/greeting-text

(不过我自己没用过,不知道有什么作用。)

此外,如前所述,您可以将用户数据存储在自己的数据库中,如果在那里找不到用户,可以发送问候消息。