我正在使用自适应卡在节点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 后使用?
需要帮助。
答案 0 :(得分:0)
OpenUrl操作只需调用一个url。没有调用机器人。
但是,一个选项是添加一个路径到托管bot的网站,该网站接收实际url作为查询字符串参数(也包括userid,channel和conversationid)。然后,当用户单击该链接时,重定向到实际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