使用node.js的Bot团队:如何更新消息

时间:2019-10-28 08:48:29

标签: botframework microsoft-teams

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

在我的C#代码中,我发送一条消息,并保存活动ID和发送该会话的ID。 要更新此活动(必要时),我创建一个新活动并使用此保存的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中使用哪种方法...

谢谢

迭戈

2 个答案:

答案 0 :(得分:1)

除了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,但否则无法正常工作。

答案 1 :(得分:1)

@Deigo由于您已经在C#中实现了这一点,因此这里是update message in NodeJS的示例。请尝试该示例,如果您遇到任何问题,请告诉我们。