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 的示例。请试用示例,如果您遇到任何问题,请告诉我们。
我有一个适用于 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 的示例。请试用示例,如果您遇到任何问题,请告诉我们。