【问题标题】:Teams Bot with node.js: How to update a message使用 node.js 的 Teams Bot:如何更新消息
【发布时间】:2019-10-29 12:09:51
【问题描述】:

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

在我的 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 中使用哪种方法来实现相同目的...

谢谢,

迭戈

【问题讨论】:

    标签: botframework microsoft-teams


    【解决方案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,但我无法让它工作,否则。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-10
        • 1970-01-01
        • 2021-02-19
        • 2020-11-10
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多