自适应卡中用户特定视图的刷新不会触发调用

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

目前正在尝试为自适应卡实现用户特定视图。

文档展示了如何自动刷新自适应卡以及如何处理调用。我实现了 BotMessageActivity,每当我用卡片向机器人响应写入内容时:

await turnContext.SendActivityAsync(MessageFactory.Attachment(cardAttachment), cancellationToken);

到目前为止一切顺利。我收到卡片,但不知何故我的 I InvokeActivity 没有被触发:

protected override async Task<InvokeResponse> OnInvokeActivityAsync(ITurnContext<IInvokeActivity> turnContext, CancellationToken cancellationToken){...}

我的主要目标是更改末尾 URL 的标题和值。

这就是我的自适应卡的样子:

{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"refresh": {
    "action": {
        "type": "Action.Execute",
        "title": "Refresh",
        "verb": "refresh",
        "data": {
            "CreatedBy": "test"
        }
    },
    "userIds": [
        "999111999111999111"
    ]
},
    "body": [
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "auto",
                    "items": [
                        {
                            "type": "Image",
                            "url": "URL"
                        }
                    ]
                }
            ]
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "auto",
                    "items": [
                        {
                            "type": "Image",
                            "url": "URL"
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "TestText",
                            "wrap": true,
                            "weight": "Bolder"
                        },
                        {
                            "color": "default",
                            "horizontalAlignment": "left",
                            "isSubtle": false,
                            "size": "medium",
                            "weight": "default",
                            "type": "TextBlock",
                            "text": "TestText",
                            "wrap": true,
                            "spacing": "medium"
                        }
                    ],
                    "verticalContentAlignment": "center"
                }
            ]
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                        {
                            "type": "FactSet",
                            "facts": [
                                {
                                    "title": "TestId",
                                    "value": "JustAnId"
                                },
                                {
                                    "title": "AnyData",
                                    "value": "AnyTest"
                                }
                            ]
                        }
                    ]
                }
            ],
            "spacing": "medium"
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.OpenUrl",
                    "title": "ButtonA",
                    "url": "UrlA"
                }
            ],
            "spacing": "medium"
        }
    ]
}
c# microsoft-teams adaptive-cards
1个回答
0
投票

我认为我可以简单地使用用户对象 ID 进行测试,并且用户对象 ID 与 MRI 的值相同。然而我发现事实并非如此; MRI 和用户对象 ID 确实是不同的实体。

输入正确的 MRI 值后,机器人能够调用 Invoke 方法。

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