首页 > 解决方案 > 机器人如何从任务模块提交的上下文中发送私人消息?

问题描述

我有一个用例,在另一个用户通过任务模块提交后,机器人需要向 Teams 团队中的用户发送私人消息。消息基本上是,“Joe Schmo 与你分享了一些东西。”

我试过在这里使用这个代码示例,这就是我将要引用的:https ://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/57.teams-conversation-bot/bots/团队ConversationBot.js#L172

但是,它似乎仅在上下文是发送给机器人的消息时才有效,无论是私人消息还是在频道中。

task/submit当从事件调用此代码时,context对象会以引发错误的方式进行修改: (node:14206) UnhandledPromiseRejectionWarning: TypeError: Cannot perform 'get' on a proxy that has been revoked

发生此错误的行很简单: const ref = TurnContext.getConversationReference(context.activity);

在调试时,我注意到在messageAllMembersAsync函数开始时context对象有一个activity,但在执行TeamsInfo.getPagedMembers()之后activitynull

messageAllMembersAsync在提交任务模块的上下文中我需要做什么?

标签: node.jsbotframeworkmicrosoft-teams

解决方案


在这种情况下,您应该使用主动消息

  1. 保存有关用户 1 的所需信息
  2. 当用户 2 完成任务时,您可以使用Proactive Message 示例代码向用户 1 发送消息。

检查如何/api/notify用于发送主动消息:teams-conversation-bot

如果您遇到任何问题,请告诉我们。


推荐阅读