【问题标题】:How to capture button text (for the button user pressed) in adaptive cards如何在自适应卡中捕获按钮文本(用于按下的按钮用户)
【发布时间】:2019-04-17 22:52:17
【问题描述】:

技术:-

用于机器人构建器版本 3 的 Nodejs Sdk 我有 MS 团队和 Cortana 频道的聊天机器人

我正在尝试查看是否有办法捕捉用户点击了正在呈现的自适应卡片上的哪些按钮。很可能我对按钮上的文本感兴趣,所以我可以运行一些分析。

我的卡片有一个带有“type”的按钮:“Action.ShowCard”,类似于这个示例https://adaptivecards.io/samples/ActivityUpdate.html

假设我想捕获用户点击“评论”和“设置截止日期”按钮。

【问题讨论】:

    标签: javascript node.js botframework adaptive-cards


    【解决方案1】:

    如果你关注 - https://docs.microsoft.com/en-us/adaptive-cards/getting-started/bots - https://docs.microsoft.com/en-us/azure/bot-service/nodejs/bot-builder-nodejs-send-rich-cards?view=azure-bot-service-3.0

    您不会看到明显的答案。渲染器处理显示卡。但是 - 对于分析,您可以使用 Action.Submit。您的机器人将在消息中获得一个值。然后,您可以进行分析,并显示另一张具有不同布局的卡片。

    此外,您也许可以使用“跟踪像素”方法(不知道,没有尝试过),或者在显示卡片上的任何内容与交互时隐式收集统计信息(这将通过作为消息文本或值)。

    【讨论】:

    • 我没有理解您所说的“您的机器人将在消息中获得值”的意思。然后,您可以进行分析,并显示另一张具有不同布局的卡片。如果我没听错,您建议执行以下操作,我将填充 Action.ShowCard 的值并提交以关闭汽车?我们可以做 session.value 或其他事情来确保 Action.ShowCard 的按钮被点击?
    • 如果您修改流程以使用 Action.Submit 而不是 ShowCard,您将获得输入设置回您的机器人。如果您继续使用 ShowCard,则需要其他技巧。例如,嵌入式卡可以包含理论上仅在显示卡时才会加载的图像(魔术像素)。然后,您的网络服务器会监视该图像的下载(用于分析)。
    • 我必须使用 ShowCard,因为我不想让用户点击提交按钮。在这种情况下,我的卡将信息返回给用户显示的原因是 ShowCard 比提交更有意义,我将不得不使用带有一些预填充值的 Input.Text。 Plus 分析不适用于信息(文本字段、TextBlock 值),而是针对单击了 3 个按钮中的哪个按钮。
    • 好的。但是 showcard 是由 channelrender 实现的,你无法控制它。在大多数表面上,Cortana 渲染器将显示卡实现为具有默认 js 的隐藏 div,以响应单击来翻转 ccs 显示属性。你不能拦截它,也不能注入 js,因为那将是一个巨大的安全漏洞。您可以使用 Microsoft 反馈中心为各种渠道开发人员添加此类挂钩以进行分析。
    猜你喜欢
    • 2012-02-06
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多