我们有一个团队机器人,可以在 MS 团队中发布消息。新对话的第一个活动总是一张自适应卡片,我们偶尔会用一张新卡片更新它。这一切正常,直到我用这个机器人组建了一个新团队。
我们正在尝试使用 UpdateActivityAsync 进行更新,返回 NotFound。
经过一些故障排除后,我注意到以下几点:
我们使用旧的 bot 框架版本 3,我知道它不再维护,但据我所知,它应该仍然有效(不打算停止运行)。还考虑到上述几点(特别是第 4 点),我希望它在后台使用相同的调用。
因此,这适用于较旧的团队,但不适用于使用 @thread.tacv2 的团队
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithCard);
Run Code Online (Sandbox Code Playgroud)
对于@thread.tacv2我们现在必须使用的团队
var messageWithText = Activity.CreateMessageActivity();
messageWithText.ChannelId = teamsConversationId;
messageWithText.Id = activityId;
messageWithText.Type = ActivityTypes.Message;
messageWithText.Text = "Updated";
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithText);
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithCard);
Run Code Online (Sandbox Code Playgroud)
异常没有提供太多细节:
操作返回了无效的状态代码“NotFound”
未找到对话。
有谁知道如何避免团队之间的这种变化并允许使用卡片更新活动?
另外(这不太重要,但我认为添加它很有用)我注意到有时(我现在已经看过两次)Teams 似乎无法呈现自适应卡片并显示 URIObject XML,其中包含错误:cards.unsupported . 但是,如果我退出客户端并重新启动它,它会呈现出很好的效果……到目前为止,我从未在旧频道中看到过这种情况。
Teams 客户端版本 1.3.00.362(64 位)(无开发模式)。普通 Azure 租户(无预览/试用)
编辑 11/05/2020 似乎这也发生在具有“旧”名称(@thread.skype)的团队中。所以 …