node.js 的 Teams Bot:如何更新消息

Teams Bot with node.js: How to update a message

我有一个适用于 Teams 客户端的 C# 机器人,但我需要在 node.js 中拥有相同的机器人。 当我需要更新我发送的没有上下文的消息时遇到问题。

在我的 C# 代码中,我发送一条消息并保存 activity ID 和发送消息的对话 ID。 要更新这个 activity(需要时),我创建了一个新的 activity 并使用这个保存的 ID:

var activityIdSaved = "xxx";
var conversationId_saved = "yyyyy";

var activity = Bot.Schema.Activity.CreateMessageActivity();
activity.Id = activityIdSaved; // set Id (saved activity Id)
activity.Text = "This is updated text";

await connectorClient.Conversations.UpdateActivityAsync(conversationId_saved, activityIdSaved, (Bot.Schema.Activity)activity);

这在 C# 中工作正常,但我找不到在 node.js 中用于相同目的的方法...

谢谢,

迭戈

除了 ConnectorClient 需要一个 baseUri 之外,这几乎是一回事。像这样:

const connectorClient = new ConnectorClient(new MicrosoftAppCredentials('<yourAppId>', '<yourAppPassword>'), { baseUri: teamsServiceUrl });

const activity = MessageFactory.text("This is updated text");
activity.id = activityIdSaved;

await connectorClient.conversations.updateActivity(conversationId_saved, activityIdSaved, activity as Activity);

teamsServiceUrl 因用户通信的位置而异。对我来说,它是 https://smba.trafficmanager.net/amer/,但您可能需要从 activity.serviceUrl.

动态获取它

我不确定你为什么需要手动设置 activity.id 并将其传递给 updateActivity,但我无法让它工作,否则。

@Deigo 因为您已经在 C# 中实现了它,这里是 update message in NodeJS 的示例。请试用示例,如果您遇到任何问题,请告诉我们。