我正在编写一个消息扩展,供用户发送自适应卡片。我确实从查询面板的 MessagingExtensionResult 创建了自适应卡片,并将 Tap 操作添加到 ThumbnailCard 以进行评级,但是当我单击 Action.Submit 并引发 OnTeamsMessagingExtensionCardButtonClickedAsync 事件时,我无法发送响应或更新响应的自适应卡片。它总是显示“无法访问应用程序。请重试。”。
我可以获取数据,但无法更新自适应卡片以供用户查看他们选择的操作。有什么方法可以通过 OnTeamsMessagingExtensionCardButtonClickedAsync 更新提升的自适应卡或将更新发送到频道。
请记住,我的应用不是机器人,因此它不能完全执行机器人事件或操作。
答案 0 :(得分:0)
在您的卡片按钮中,请将操作类型添加为调用
var createCardData = ((JObject)action.Data).ToObject<CreateCardData>();
var card = new HeroCard
{
Title = createCardData.Title,
Subtitle = createCardData.Subtitle,
Text = createCardData.Text,
Buttons = new List<CardAction>{new CardAction(){Title = "button1",Type = "invoke",Text = "this message is updated",Value = "this message is updated",} }
};
var attachments = new List<MessagingExtensionAttachment>();
attachments.Add(new MessagingExtensionAttachment
{
Content = card,
ContentType = HeroCard.ContentType,
Preview = card.ToAttachment(),
});
return new MessagingExtensionActionResponse
{
ComposeExtension = new MessagingExtensionResult
{
AttachmentLayout = "list",
Type = "result",
Attachments = attachments,
},
};
当您点击卡片中的按钮时,它会调用 OnTeamsMessagingExtensionCardButtonClickedAsync() 方法。发送自适应卡片附件作为响应。
protected override async Task OnTeamsMessagingExtensionCardButtonClickedAsync(ITurnContext<IInvokeActivity> turnContext, JObject obj, CancellationToken cancellationToken)
{
var reply = MessageFactory.Attachment(CreateAdaptiveCardAttachment());
await turnContext.SendActivityAsync(reply, cancellationToken);
}