自适应卡片和 Microsoft Bot Framework:将只允许 'openUrl' 操作?
Adaptive Cards and Microsoft Bot Framework: will only permit 'openUrl' action?
编辑 2:以下模式(由同事提供)有效。我从 Microsoft 示例中的架构中删除了引号,但仍然无效。我不确定是什么问题。我将问题悬而未决,以防其他人想提供答案,但我已经解决了。
const card = {
contentType: 'application/vnd.microsoft.card.adaptive',
content: {
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
type: 'AdaptiveCard',
version: '1.0',
{
type: 'Input.Text',
placeholder: 'Name',
style: 'text',
maxLength: 50,
id: 'defaultInput'
},
actions: [
{
type: 'Action.Submit',
title: 'Siguiente',
data: {} // will be populated with form input values
}
]
}
};
我正在尝试使用自适应卡片在我的 MS Bot 中创建一个表单。我从 MS 站点 (https://blog.botframework.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/) 获取了样本表格,但出现以下错误
错误似乎是认为我的操作类型是 Action.openUrl
,但我在下面的代码中没有看到它。非常感谢任何帮助。使用 Microsoft Bot Framework 3,节点 12.13.0.
function askPolicyNumber(session) {
const card = {
'$schema': 'https://adaptivecards.io/schemas/adaptive-card.json',
'type': 'AdaptiveCard',
'version': '1.1',
'body': [
{
'type': 'Input.Text',
'id': 'id_text'
},
{
'type': 'Input.Number',
'id': 'id_number'
}
],
'actions': [
{
'type': 'Action.messageBack',
'title': 'Submit',
'data': {
'prop1': true,
'prop2': []
}
}
]
};
const msg = new builder.Message(session).attachments([card]);
return session.send(msg);
}
编辑:
似乎无论我将操作设置为什么,它都一直认为这是一个 openUrl
操作。事实上,如果我将它设置为 openUrl
并给它一个 url
属性,它就可以正常工作。
我查看了此页面 -- https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions#adaptive-cards-actions -- 并按照 'Adaptive Cards with messageBack action' 中的说明进行操作,但它没有任何改变
"actions": [
{
"type": "Action.Submit",
"title": "Click me for messageBack",
"data": {
"msteams": {
"type": "messageBack",
"displayText": "I clicked this button",
"text": "text to bots",
"value": "{\"bfKey\": \"bfVal\", \"conflictKey\": \"from value\"}"
}
}
}
]
}
你做的事情有很多问题。建议大家使用 Bot Builder v4 而不是 v3。您的同事解决的主要问题是您试图将 Adaptive Card 对象当作 Attachment 对象来使用。
您链接到的博客 post 解释了自适应卡片必须遵循自适应卡片架构。自适应卡片架构中没有 Action.messageBack
。请继续参阅文档以获取更多信息。
编辑 2:以下模式(由同事提供)有效。我从 Microsoft 示例中的架构中删除了引号,但仍然无效。我不确定是什么问题。我将问题悬而未决,以防其他人想提供答案,但我已经解决了。
const card = {
contentType: 'application/vnd.microsoft.card.adaptive',
content: {
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
type: 'AdaptiveCard',
version: '1.0',
{
type: 'Input.Text',
placeholder: 'Name',
style: 'text',
maxLength: 50,
id: 'defaultInput'
},
actions: [
{
type: 'Action.Submit',
title: 'Siguiente',
data: {} // will be populated with form input values
}
]
}
};
我正在尝试使用自适应卡片在我的 MS Bot 中创建一个表单。我从 MS 站点 (https://blog.botframework.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/) 获取了样本表格,但出现以下错误
错误似乎是认为我的操作类型是 Action.openUrl
,但我在下面的代码中没有看到它。非常感谢任何帮助。使用 Microsoft Bot Framework 3,节点 12.13.0.
function askPolicyNumber(session) {
const card = {
'$schema': 'https://adaptivecards.io/schemas/adaptive-card.json',
'type': 'AdaptiveCard',
'version': '1.1',
'body': [
{
'type': 'Input.Text',
'id': 'id_text'
},
{
'type': 'Input.Number',
'id': 'id_number'
}
],
'actions': [
{
'type': 'Action.messageBack',
'title': 'Submit',
'data': {
'prop1': true,
'prop2': []
}
}
]
};
const msg = new builder.Message(session).attachments([card]);
return session.send(msg);
}
编辑:
似乎无论我将操作设置为什么,它都一直认为这是一个 openUrl
操作。事实上,如果我将它设置为 openUrl
并给它一个 url
属性,它就可以正常工作。
我查看了此页面 -- https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions#adaptive-cards-actions -- 并按照 'Adaptive Cards with messageBack action' 中的说明进行操作,但它没有任何改变
"actions": [
{
"type": "Action.Submit",
"title": "Click me for messageBack",
"data": {
"msteams": {
"type": "messageBack",
"displayText": "I clicked this button",
"text": "text to bots",
"value": "{\"bfKey\": \"bfVal\", \"conflictKey\": \"from value\"}"
}
}
}
]
}
你做的事情有很多问题。建议大家使用 Bot Builder v4 而不是 v3。您的同事解决的主要问题是您试图将 Adaptive Card 对象当作 Attachment 对象来使用。
您链接到的博客 post 解释了自适应卡片必须遵循自适应卡片架构。自适应卡片架构中没有 Action.messageBack
。请继续参阅文档以获取更多信息。