【问题标题】:Calling a method/callback after adaptive card's Action.OpenUrl operation自适应卡片的 Action.OpenUrl 操作后调用方法/回调
【发布时间】:2018-08-08 08:31:37
【问题描述】:

我正在使用自适应卡片在节点 js 中向用户显示一篇文章。

我的自适应卡片格式:

function AdaptCard(Txt, Img, Url) {
let cardFormat = {
    contentType: "application/vnd.microsoft.card.adaptive",
    content: {
        "type": "AdaptiveCard",
        "version": "1.0",
        "body": [
            {
                "type": "TextBlock",
                "text": Txt,
                "size": "medium",
                "weight": "bolder",
                "wrap": true
            },
            {
                "type": "Image",
                "url": Img,
                "size": "auto"
            }
        ],
        "actions": [
            {
                "type": "Action.OpenUrl",
                "title": "View Article",
                "url": Url
            }
        ]
    }
};
return cardFormat; 
}

会话代码:

bot.beginDialog(message.address, 'ShowArticle'); 
bot.dialog('ShowArticle', [ 
 (session) => { 
 let dispCard = new builder.Message(session).addAttachment(AdaptCard("Title", "Image URL", "Link URL" ));
 session.send(dispCard ); 
}]);

我试图在用户访问文章后询问所提供的网址是否有用? 一旦用户执行 Action.OpenUrl,我是否可以使用像 bot.on('some event') 这样的事件?

需要帮助。

【问题讨论】:

  • 您使用的是哪个频道? Action.OpenUrl完成后没有回调或类似的事情,但在网络聊天或直线案例中你可能有解决方案

标签: node.js botframework chatbot adaptive-cards


【解决方案1】:

OpenUrl 操作只是调用一个 url。没有调用机器人。

但是,一种选择是添加到托管机器人的网站的路径,该网站接收实际 url 作为查询字符串参数(还包括用户 ID、频道和对话 ID)。然后,当用户单击链接时,重定向到实际 url,并使用 UserId、Channel 和 ConverationId 主动向用户发送消息,询问链接是否有用。 (有关 ProactiveMessaging 的更多信息可以在这里找到:https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-proactive-messages

如果您的目标渠道是 WebChat,您可以修改源并在 openUrl 出现时调用机器人: https://github.com/Microsoft/BotFramework-WebChat/blob/1587aa7972fba28d3a9adc8b2c6a090ab4e285a0/src/Chat.tsx#L280

【讨论】:

    猜你喜欢
    • 2021-02-17
    • 2020-03-16
    • 2020-08-16
    • 2019-04-22
    • 2020-11-14
    • 2021-04-12
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多