【问题标题】:Is it possible for a Microsoft Teams Messaging Extension to know which 1:1 Chat it was invoked from?Microsoft Teams Messaging Extension 是否有可能知道它是从哪个 1:1 聊天中调用的?
【发布时间】:2020-10-16 02:11:53
【问题描述】:

消息扩展与 Microsoft Teams 机器人相关联。当被调用时,例如为了获取搜索结果,它会与与之关联的机器人建立对话。该机器人知道调用消息扩展的 Teams 用户 X。

但是,是否有可能知道调用消息传递扩展的上下文,例如它是在与远程用户 Y 的 1:1 聊天会话期间调用的?用例是根据远程用户 Y 的身份在消息传递扩展中返回结果,而不仅仅是 X 的身份。

【问题讨论】:

    标签: botframework microsoft-teams


    【解决方案1】:

    我认为您可以为此使用 GetPagedMembersAsync - 您可以获取所有成员,消除实际调用消息扩展的人,如果只剩下一个:

    1. 那么它一定是 1-1 转换(请注意,它也可能包含您的机器人,因此请检查并忽略)

    2. 剩下的就是“用户Y”

    【讨论】:

    • 会检查的。乍一看,当在通道中调用扩展时,该方法似乎可以工作..
    • 你可以有一个有 2 名成员的团队,不要依赖这个逻辑。如果您正在使用 Bot Builder SDK (github.com/Microsoft/botbuilder-dotnet),您将收到将捕获对话详细信息的 turnContext。 (turnContext.Activity.Conversation.ConversationType)
    • 您可以 (a) 通过不允许将机器人安装到团队中来消除应用清单中的这种可能性,只允许组/1-1 聊天,或者 (b) 是的,您可以检查来自 turnContext 是否在频道(团队)与群聊中。不过,无论哪种情况,您都需要获取成员、删除机器人并删除用户 X 以获取剩下的人
    • @HiltonGiesenow op 从未说过他/她不希望该应用程序在团队范围内。我建议您编辑答案以包含正确的流程 - 检查对话类型,如果是 groupChat,然后检查它是否只有 2 个用户以获得所需的结果。
    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    相关资源
    最近更新 更多