有些朋友问到,如果想要开发一个bot针对于Teams的某些租户,如何做?实际上微软的Teams的SDK早就提供了类似的功能。
如果你使用的是Javascript/Node.JS开发,使用session.message.sourceEvent.tenant.id
就可以知道当前消息来自于哪个租户。
技术人员,理论知识不如直接上代码,如下Javascript实例代码让大家更加容易理解一些:
var bot = new builder.UniversalBot(connector);bot.use({botbuilder: function(session, next) {var currentMsgTenant = typeof(session.message.sourceEvent.tenant) !== "undefined"? session.message.sourceEvent.tenant.id : null;....
如果你使用的是C#,那恭喜你了,SDK直接就有现成的对租户的过滤器
using Microsoft.Bot.Connector.Teams;namespace Teams.Sample.Controllers
{[BotAuthentication, TenantFilter]public class MessagesController : ApiController{[HttpPost]public async Task<HttpResponseMessage> Post([FromBody] Activity activity)
然后只要在你的web.config里进行简单的配置就可以了
<configuration><appSettings><!--other settings--><add key="AllowedTenants" value="*TenantId1,TenantId2,...*"/>
如果你走在技术前沿,使用了dotnet core 那很不幸,在我写这篇文章的时候dotnet core teams SDK还不支持TenantFilter。不过庆幸的是SDK是开源的,https://github.com/OfficeDev/BotBuilder-MicrosoftTeams/blob/master/CSharp/Library/Microsoft.Bot.Connector.Teams.NetFramework/TenantFilterAttribute.cs
代码面前毫无秘密。
而且按照Teams的发展速度,应该很快就能有asp.net core的版本了,大家拭目以待!