简体   繁体   English

OnTeamsMessagingExtensionCardButtonClickedAsync 响应更新自适应卡

[英]OnTeamsMessagingExtensionCardButtonClickedAsync response with updated adaptive card

I am writing a messaging extension for users to be send adaptive cards.我正在为用户编写一个消息扩展来发送自适应卡片。 I did created adaptive card from MessagingExtensionResult from query panel and added Tap action to ThumbnailCard for rating, but when I click Action.Submit and rised OnTeamsMessagingExtensionCardButtonClickedAsync event, I can not send a response or update adaptive card for responses.我确实从查询面板中的 MessagingExtensionResult 创建了自适应卡,并将点击操作添加到 ThumbnailCard 以进行评级,但是当我单击 Action.Submit 并引发 OnTeamsMessagingExtensionCardButtonClickedAsync 事件时,我无法发送响应或更新自适应卡以进行响应。 It always show "Unable to reach app. Please try again.".它总是显示“无法访问应用程序。请重试。”。

在此处输入图像描述

I can get data but can't update adaptive card for user to see actions for their selections.我可以获取数据,但无法更新自适应卡以供用户查看其选择的操作。 Is there any way OnTeamsMessagingExtensionCardButtonClickedAsync to update rised adaptive card or send an update to channel.有什么办法 OnTeamsMessagingExtensionCardButtonClickedAsync 更新上升的自适应卡或向频道发送更新。

To be remember, my app is not a bot so its not fully capable of doing bot events or actions.请记住,我的应用程序不是机器人,因此它不完全能够执行机器人事件或操作。

In your card button please add action type as Invoke在您的卡片按钮中,请添加操作类型为 Invoke

    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,
},
};

when you click on button in card, it will call OnTeamsMessagingExtensionCardButtonClickedAsync() method.当您单击卡片中的按钮时,它将调用 OnTeamsMessagingExtensionCardButtonClickedAsync() 方法。 Send adaptive card attachment as a response.发送自适应卡片附件作为响应。

protected override async Task OnTeamsMessagingExtensionCardButtonClickedAsync(ITurnContext<IInvokeActivity> turnContext, JObject obj, CancellationToken cancellationToken)
{
var reply = MessageFactory.Attachment(CreateAdaptiveCardAttachment());
await turnContext.SendActivityAsync(reply, cancellationToken);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM