我已经发送了带有详细信息和按钮的卡片。单击任务模块中的提交后,将通过http API保存详细信息,此处的活动类型为调用。 现在,我必须更新现有的自适应卡。
我有更新消息的代码,但是如何更新卡或重新发送卡。
connector = new ConnectorClient(new Uri(activity.ServiceUrl));
reply = activity.CreateReply($"You sent {activity.Text} which was {activity.Text.Length} characters");
var msgToUpdate = await connector.Conversations.ReplyToActivityAsync(reply);
Activity updatedReply = activity.CreateReply($"This is an updated message");
await connector.Conversations.UpdateActivityAsync(reply.Conversation.Id, msgToUpdate.Id, updatedReply);
答案 0 :(得分:3)
这涉及几个步骤。
创建自适应卡并在自适应卡操作中添加唯一ID(GUID)。
var Card = new AdaptiveCard()
{
Body = new List<AdaptiveElement>()
{
new AdaptiveTextBlock(){Text="This is a test adaptive card"}
},
Actions = new List<AdaptiveAction>()
{
new AdaptiveSubmitAction()
{
Title="UpdateMe",
DataJson= @"{'id':'uniqueId'}"
}
}
};
发送消息后,请保持自适应卡uniqueId和消息ID的映射。
connector = new ConnectorClient(new Uri(activity.ServiceUrl));
reply = activity.CreateReply();
reply.Attachments.Add(Card.ToAttachment());
var msgToUpdate = await connector.Conversations.ReplyToActivityAsync(reply);
// Keep mapping of uniqueId and messageToUpdate.Id
// UniqueId1 => messageId1
// UniqueId2 => messageId2
当用户单击UpdateMe操作按钮时,检查uniqueId
的映射(将在activity.Value
中)。
connector.Conversations.UpdateActivityAsync
。如果您需要更多详细信息,请告诉我们。
答案 1 :(得分:0)