Microsoft Bot Framework REST API - 发送包含对话附件的消息后无法检索 activity ID

Microsoft Bot Framework REST API - Cannot retrieve activity ID after sending message containing attachments to conversation

使用 Microsoft Bot Framework REST API,对于与机器人的 Teams 对话,我们 send an Activity 给用户。请注意,expect return 值是一个 ResourceResponse object,包含创建的 Activity.

id

POST https://smba.trafficmanager.net/emea/v3/conversations/<conversation_id>/activities
Headers: Bearer <token>
Body:

{
    "type": "message",
    "text": "hello",
    "textFormat": "xml"
}

响应的状态为 201 并包含预期的 Activity 标识符:

{
    "id": "1610124975523"
}

太棒了!现在让我们发送一条包含按钮的消息。

{
    "type": "message",
    "text": "hello",
    "textFormat": "xml",
    "attachments": [
        {
        "contentType": "application/vnd.microsoft.card.adaptive",
        "content": {
            "type": "AdaptiveCard",
            "version": "1.0",
            "body": [],
            "actions": [{
                "type": "Action.Submit",
                "title": "SUBMIT",
                "data": {
                    "payload": "derp"
                }
                }]
      }}
    ]
}

这次我们收到一个空响应 202,并且没有附加 Activity ID。

请注意,最终用户已成功接收到这两个活动。

发送包含按钮等附件的activity时如何接收ActivityID?为什么这不符合 REST API 的规范?

我在 Bot 框架 SDK Github here

上创建了一个问题

显然,包含文本和卡片附件的 activity 作为两个单独的活动发送(文本,然后是附加的卡片),这就是收到空 202 响应的原因。这显然是“设计使然”。

(不太好的)解决方案因此是分别创建两个活动并存储两个 activity ID。