【发布时间】:2019-07-02 05:34:47
【问题描述】:
我正在尝试向我的机器人发送回发短信,但我不知道正确的语法。
这是我的代码:
if (postback.payload == "WHAT_IS_MENTAL_HEALTH") {
await turnContext.sendActivity("TO-DO: Forward on 'What Is Mental Health?' to Bot Handler");
ActionTypes.postBack("What Is Mental Health?");
}
我正在尝试转发“什么是心理健康?”到我的机器人,所以它会撤回 QnA Maker 对该问题的响应。
具体步骤如下:
- 用户点击 Facebook Messenger 通用模板卡上的按钮(例如“什么是心理健康?”按钮)
- 按钮向机器人发送回发负载(例如“WHAT_IS_MENTAL_HEALTH”)
- 我正在检测来自 Facebook Messenger 的 postBack 有效负载(例如,如果 (postBack.payload == “WHAT_IS_MENTAL_HEALTH”))
- 一旦检测到特定的 postBack 有效负载,我就想向我的机器人发送一个额外的 postBack 作为文本(例如“什么是心理健康?”),以便我的 QnA 可以解释它并以正确的答案进行响应编入我的 QnA 知识库。
【问题讨论】:
-
我尝试了很多变体,但无法让它发挥作用。我尝试过的变体是:await turnContext.PostAsync();等待 turnContext.postBack();等待 turnContext.sendActivity.postBack();后退(); ActionTypes.postBack();
-
我可以提供帮助,但要确保我们在同一页面上。为什么使用“postBack”?你到底想达到什么目的?您是否只是想或多或少地向您的机器人发送“隐藏”消息?你想触发什么用户交互?
-
谢谢!我正在使用 postBack,因为我正在检测来自 Facebook Messenger 的 postBack Payload,然后想将其作为文本转发到我的机器人,以便我的 QnA 可以对其进行响应。这有意义吗?
-
您能指导我完成您尝试实现的步骤吗?比如
user clicks button > button calls bot with postback event > bot responds with QnA response?我只是不清楚什么是“检测 postBack Payload”。如果机器人已经检测到它,您不需要向机器人转发任何其他内容。如果您使用其他详细信息编辑您的问题,这可能是最简单的。 -
Np。真正的关键不是关于我发布的代码,而是更多关于结合使用这两个示例来获得你想要的东西。由于您似乎是新手,我不能推荐足够的学习如何调试(我在this answer 的末尾发布了如何使用机器人)。它将特别帮助您阅读来自
activity对象的内容并确保您获得正确的属性/值。
标签: node.js botframework