microsoft / BotFramework-Hubot

Hubot adapter for botframework
MIT License
111 stars 40 forks source link

Confused on how this works with Teams #15

Closed jwhiteacre closed 7 years ago

jwhiteacre commented 7 years ago

I am running hubot with the application loaded. I did get an AppID from Microsoft as instructed. What I am not sure I understand is, does this plugin connect to teams and simulate a client or must I make hubot with the plugin publicly available and provide Teams the URL for access to hubot?

MatSFT commented 7 years ago

You are right in that you have to make hubot publicly available. The message flow from teams looks like this if using this adapter: Teams -> BotFramework -> Your Hubot

Since BotFramework requires you to have a public endpoint exposed on your bot to communicate to it, this adapter also requires it.

MatSFT commented 7 years ago

I have a pet project that works differently here: https://github.com/MattSFT/Orky

But it is no where near enterprise quality so I can't recommend that you use it for any production level stuff.

jwhiteacre commented 7 years ago

Thanks. We are migrating from MatterMost and I used this for my bot: https://github.com/LPgenerator/mattermost_bot

Very simple to implement. I will look at your project Orky and see if it fills my needs. For what I need it may not need to be production ready.

MatSFT commented 7 years ago

This adapter should be pretty straight forward to use as well, you just need to register the hubot instance with botframework to be able to communicate with it. For MS Teams specific communication, you can lock down the messages you receive to just the tenant for your organization.

jwhiteacre commented 7 years ago

Really appreciate the help with this. The issue for us is the security factor, for this set up I must open a door (yes a locked door) to a bot that I want to control internal applications in my company. IT security guys heads will explode on that request. Thus the Mattermost bot I posted above is much nicer as it is the client connecting to the server and getting sent anything that matches its name from the rooms/chats it has joined.

Any ideas on how hard it would be to write a python (or other language) headless client for Teams?

MatSFT commented 7 years ago

I don't think writing a headless client for Teams is a good idea. We release fairly frequently and I think you would have a nightmare trying to maintain your client.

There doesn't seem to be any supported way to create a bot that does not require a public endpoint. I understand the security concerns that you raised and that was one of my inspirations for my pet project mentioned above. But that project definitely raises security concerns of its own.

Let me know if you do choose to write a working headless client, would be an interesting piece of code to look at.

mikeyrcamp commented 7 years ago

I'm thinking Azure Hybrid Connections might be a better solution than attempting to get the IT folks to open up a port. I'm going to attempt to go that route. Thanks for this @MattSFT