BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有啥区别?
Posted
技术标签:
【中文标题】BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有啥区别?【英文标题】:What's the difference of onMembersAdded, onMembersAddedActivity, and onTeamsMembersAdded in BotFramework?BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有什么区别? 【发布时间】:2021-09-16 19:28:33 【问题描述】:BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有什么区别?
我重写了这三个函数,但是只能触发onMembersAdded。而且onMembersAdded函数中不能通过member.name获取用户名,在member对象中,它只包含id。
【问题讨论】:
【参考方案1】:请找出以下差异:
当成员加入团队对话时,会调用 OnMembersAdded 和 OnTeamsMembersAdded。 但是 OnTeamsMembersAdded 是 TeamsActivityHandler 类的一种方法,仅特定于 Microsoft Teams。
OnTeamsMembersAdded 采用 IList 的对象,其中包含其他详细信息,如电子邮件、UserPrincipalName、Surname 等,这些信息在 OnMembersAdded 中使用的 IList 对象中不存在。
根据最新的 bot 框架 SDK 4.0,我们没有可用的 onMembersAddedActivity() 方法。 请参考以下文档: https://docs.microsoft.com/en-us/dotnet/api/microsoft.bot.builder.teams.teamsactivityhandler?view=botbuilder-dotnet-stable#methods
参考链接: 渠道账户 https://docs.microsoft.com/en-us/dotnet/api/microsoft.bot.schema.channelaccount?view=botbuilder-dotnet-stable
TeamsChannelAccount https://docs.microsoft.com/en-us/dotnet/api/microsoft.bot.schema.teams.teamschannelaccount?view=botbuilder-dotnet-stable
第一次安装 bot 时,成员对象仅包含 id 和 name 值为 null,因为我们没有添加任何成员。 在团队频道中添加机器人后,如果您添加任何成员,您可以在成员对象中获取成员详细信息。
您可以从以下链接参考代码示例: https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-send-welcome-message?view=azure-bot-service-4.0&tabs=csharp
【讨论】:
以上是关于BotFramework中的onMembersAdded、onMembersAddedActivity、onTeamsMembersAdded有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 C# 将 AdaptiveCard Json 呈现为 BotFramework 消息
出了点问题,请从 BotFramework MessagingExtesion 重试