我们在以下代码片段中获得
Error: validateAndFixActivity(): missing activity type
,同时尝试使用 contex.updateActivity(message)
根据消息 ID 更新自适应卡详细信息
使用的封装是
"@azure/identity": "^4.4.0",
"@microsoft/adaptivecards-tools": "^1.3.4",
"@microsoft/teamsfx": "^2.3.2",
"botbuilder": "^4.22.3",
"restify": "^10.0.0"
try {
await teamsBot.run(context);
const updatedTemplate = structuredClone(onCallNotificationTemplate);
const card2 = CardFactory.adaptiveCard(
AdaptiveCards.declare\<CardDataOnCall\>(updatedTemplate).render(payload)
);
console.log("Card2-------------\>: ", card2);
const message = MessageFactory.attachment(card2);
message.id = "xxxxxxxxx";
message.type = "message";
await context.updateActivity(message);
catch (error) {
console.error("Error sending on-call adaptive card:", error);
}
我们正在尝试通过调用 API 端点来更新卡详细信息。如果您可以指导我们解决此问题或分享允许我们更新卡详细信息的 Node.js API 端点,那将会非常有帮助。
您似乎遇到了 validateAndFixActivity() 函数的问题,该函数在尝试使用 context.updateActivity(message) 更新自适应卡详细信息时缺少活动类型。此错误可能是由于消息对象未正确设置所需的类型属性。
调用 updateActivity 之前请确保 message.type 已正确分配。
此外,如果对话属性尚不存在,请包含该属性,这是更新消息所必需的。
try {
await teamsBot.run(context);
// Clone and update the adaptive card template
const updatedTemplate = structuredClone(onCallNotificationTemplate);
const card2 = CardFactory.adaptiveCard(
AdaptiveCards.declare<CardDataOnCall>(updatedTemplate).render(payload)
);
console.log("Card2-------------: ", card2);
// Create the message object
const message = MessageFactory.attachment(card2);
// Set the message id and type
message.id = "xxxxxxxxx"; // Message ID of the existing card you want to update
message.type = "message"; // Explicitly set the type
// Ensure you have conversation properties (necessary for update)
message.conversation = context.activity.conversation;
// Call updateActivity to update the card
await context.updateActivity(message);
} catch (error) {
console.error("Error sending on-call adaptive card:", error);
}
message.id 正确(这应该是您要更新的消息的 ID)。
消息对象中的对话字段应引用当前对话上下文,可以从 context.activity.conversation 获取。
参考示例-https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/bot-conversation/nodejs/bots/teamsConversationBot.js#L282