使用 Microsoft Teams 和 Action.Submit 时如何知道按下了哪个 Adaptive Card 按钮

美世

我使用 Microsoft Bot Framework Composer 创建了一个机器人并显示以下自适应卡。使用 Action.Submit 和 Task/Fetch 提交消息时,如何确定按下了哪个按钮?

{
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "Publish Adaptive Card Schema"
    }
  ],
  "actions": [
    {
      "type": "Action.ShowCard",
      "title": "Set due date",
      "card": {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "Input.Date",
            "id": "dueDate"
          },
          {
            "type": "Input.Text",
            "id": "comment",
            "placeholder": "Add a comment",
            "isMultiline": true
          }
        ],
        "actions": [
          {
            "type": "Action.Submit",
            "title": "OK",
            "data": {
              "msteams": {
                "type": "task/fetch",
                "value": {
                  "option": "opt1"
                }
              }
            }
          }
        ],
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
      }
    },
    {
      "type": "Action.OpenUrl",
      "title": "View",
      "url": "https://adaptivecards.io"
    }
  ],
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.3"
}

我的机器人正确接收了提交的消息,但我不知道按下了哪个按钮。以下是发送的 this.activity 的示例。我可以看到 msteams 类型设置为任务/获取,但无法判断上面卡片中按下了哪个按钮。

{
  "type": "invoke",
  "id": "",
  "timestamp": "2021-06-29T16:57:27.551-05:00",
  "localTimestamp": "2021-06-29T16:57:27.551-05:00",
  "localTimezone": "America/Chicago",
  "serviceUrl": "https://smba.trafficmanager.net/amer/",
  "channelId": "msteams",
  "from": {
    "id": "",
    "name": "Mike",
    "aadObjectId": ""
  },
  "conversation": {
    "conversationType": "personal",
    "id": "",
    "tenantId": ""
  },
  "recipient": {
    "id": "",
    "name": "csharpdemo"
  },
  "locale": "en-US",
  "entities": [
    {
      "type": "clientInfo",
      "locale": "en-US",
      "country": "US",
      "platform": "Windows",
      "timezone": "America/Chicago"
    }
  ],
  "channelData": {
    "tenant": {
      "id": ""
    },
    "source": {
      "name": "compose"
    },
    "legacy": {
      "replyToId": ""
    }
  },
  "replyToId": "",
  "value": {
    "data": {
      "type": "task/fetch"
    },
    "context": {
      "theme": "default"
    }
  },
  "name": "task/fetch",
  "callerId": "urn:botframework:azure"
}

看起来我需要在 msteams 节点中传递一个值或数据字段,但不确定如何传递。

在此处输入图片说明

https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json#adaptive-cards-actions

https://blog.botframework.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/

Teams Bot Adaptive Card action.Submit 返回未定义但适用于 Bot Emulator

美世

如果需要,您可以在数据对象中包含其他隐藏属性。

{
  "type": "Action.Submit",
  "title": "submit",
  "data": {
    "msteams": {
        "type": "task/fetch"
    },
    "Value1": "some value"
  }
}

https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json#adaptive-cards-actions

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Teams Bot Adaptive Card action.Submit 返回未定义但适用于 Bot Emulator

Microsoft Teams通话和聊天按钮

使用Action.OpenUrl从Adaptive Card打开任务模块

Action.Submit on Adaptive Cards 不会调用下一步(不仅在 Microsoft Teams 中工作,在网络聊天中工作):Bot Framework V4

iOS如何知道使用自定义委托按下了哪个按钮CollectionView

Adaptive Card 在 Microsoft Teams 中返回 undefined 但在机器人模拟器中运行良好

如何知道哪个用户按下了按钮

如何在用户操作的 Teams Adaptive Card 上呈现错误消息

如何使用 Microsoft Share To Teams 按钮对用户进行身份验证?

使用Team的附件按钮将文件上传到bot应用程序中时,Microsoft Teams返回错误

对所有按钮使用相同的回调或事件侦听器时,如何检查按下了哪个按钮

我如何迅速知道不同的按钮通向同一ViewController时按下了哪个按钮?

节点和Microsoft Teams API

Microsoft Teams 和 Java 集成

带有任务模块和 URL 的 Microsoft Teams Action 消息传递扩展不起作用

Xamarin Grid如何知道按下了哪个按钮

如何知道在detailCalloutAccessoryView中按下了哪个按钮

如何知道 QButtonGroup 内按下了哪个按钮?

Microsoft Bot Framework 和 Microsoft Teams

我们可以通过TestAdaptor和TestFlow对Adaptive Card答复使用test吗?BotFramework

如何使用Javascript确定在iOS设备上按下了哪个按钮?

如何永久卸载 Microsoft Teams?

使用Graph API和委派权限将成员添加到Microsoft Teams

Microsoft Teams HttpPost Action 打印 http 返回狀態

如何使用 Microsoft Graph 从 Microsoft Teams 机器人发送消息?

如何确定按下了哪个按钮?

如何确定按下了哪个硬件按钮?

如何识别按下了哪个按钮

使用Python的Microsoft Teams机器人