在自适应卡的Action.OpenUrl操作后调用方法/回调

问题描述 投票:2回答:1

我正在使用自适应卡在节点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 ); 
}]);

我试图询问用户,如果提供的网址是有用的?,在他访问文章后。有没有像bot.on('某事件')这样的事件,一旦用户做Action.OpenUrl我就可以使用?

需要帮助请。

node.js botframework chatbot adaptive-cards
1个回答
0
投票

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

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

如果您要定位的频道是WebChat,则可以在openUrl发生时修改源并调用bot:https://github.com/Microsoft/BotFramework-WebChat/blob/1587aa7972fba28d3a9adc8b2c6a090ab4e285a0/src/Chat.tsx#L280

© www.soinside.com 2019 - 2024. All rights reserved.