3

我的问题:

我有一张带有回发按钮的自适应卡片,其值为“thisIsMyPostback”。现在,我想按照自己的意愿处理这个回发。

问题是这个回发也可以被输入以达到相同的结果。换句话说,单击按钮并直接向我的机器人“thisIsMyPostback”发送消息会导致相同的结果。

有没有办法将回发消息与“message_received”分开?这样,用户直接发送“thisIsMyPostback”消息不会导致与单击按钮相同的结果。

谢谢!

4

2 回答 2

1

BotFramework WebChat GitHub repo GitHub repo上的 Adaptive Cards 自述文件指出:

动作的数据属性可以是一个字符串,也可以是一个对象。字符串作为 Bot Builder SDK imBack 活动传递回您的机器人,对象作为 postBack 活动传递。带有 imBack 的活动作为用户输入的回复出现在聊天流中。不显示回发活动。

"actions": [
          {
            "type": "Action.Submit",
            "title": "Next",
            "data": { "postBack": "thisIsMyPostback" }
          }
        ]

如果 Activity 的值没有对象,那么用户没有点击按钮。

于 2017-06-16T06:18:53.540 回答
1

有没有办法将回发消息与“message_received”分开?这样,用户直接发送“thisIsMyPostback”消息不会导致与单击按钮相同的结果。

triggerAction不,目前不可能,因为所有消息(用户或 imBack/postBack)都是“消息”类型,因此除非您在 postBack 中放入一些特殊文本并配置 a以识别它,否则无法区分。

有关使用触发器操作的更多信息,请参阅: https ://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-global-handlers#trigger-a-help-dialog

于 2017-06-15T18:10:48.093 回答