我有一个适用于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中使用哪种方法...
谢谢
迭戈
答案 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的示例。请尝试该示例,如果您遇到任何问题,请告诉我们。