3 ms·
I'm currently porting a slackbot to Teams. Even with the backend logic and architecture mostly re-usable, the Teams bot is already taking at least 3x as long to
by m12k 5y ago
I'm currently porting a slackbot to Teams. Even with the backend logic and architecture mostly re-usable, the Teams bot is already taking at least 3x as long to code, simply because their documentation is so obscure. It feels like detective work, correlating data from 4 different tangentially related sources (AzureAD, app authorization flows, Graph, BotFramework). I've never had so many tabs open at once in my life. At one point, I gave up on their documentation, and just traffic-sniffed the library used in one of their example apps in another language, to figure which endpoint to call and which json format to send it. The jump from Slack to Teams feels like the difference between Rails and (Java) Spring - the former makes web-apps, the latter is a framework and dependency injection container, which can be used to make various apps and services, among them web-apps.
Long story short, MS is a master at making you appreciate the difference between "technically possible to achieve" and "easy and realistic to achieve". If my experience with them is any indication, MS still has a looong way to go before they can make their ecosystem of services accessible to "normal" people.
- ajcp 5y agoI can see that. I think you're best bet is to throw that BotFramework out. I'm not sure why they keep it around, but they've all but replaced it with Power Virtual Agents.
- thrower123 5y agoBot Framework is horrible. It's the most ridiculous IM platform I've built anything for, and I've covered a good bit of the spectrum. They really need to expose a full-featured API for Teams, something at least as powerful as what you used to be able to do with the UCMA SDK for Lync/SfB. I've given up on anything ever getting exposed through Graph API in a timely manner. It took two or three years before you could get online/busy/away presence information on a user without outrageous, unsupported hacks.
- WorldMaker 5y agoBot Framework was a good idea: one framework to write a bot for multiple IM platforms at once. But of course it immediately suffered the exact problems you would expect: lowest common denominator features, older target platforms falling into disrepair, new platforms never getting official support, etc. Using Bot Framework to write just for a Teams bot is broken before you start. Using it to support both your Teams and Slack integrations sounds nice on paper, but probably doesn't work in theory as soon as you need platform specific features or do something "advanced". You still can't use Bot Framework with Discord. I liked the theory behind Bot Framework, but the practical reality has so far been mostly a disappointment.
- thrower123 5y agoI agree absolutely. The thing is, until very recently, Bot Framework was the only game in town for Teams. Doing something as simple as sending an outbound message to a user from a bot, if the user didn't initiate the conversation, was stupidly convoluted. There's some stuff added to Graph API for sending messages now, but on the whole, the development experience is very, very far from what I would expect from Microsoft. There's still no good way to sign in on behalf of a user to Teams, which makes writing load-testing tools to test a Teams bot a PITA - you can use Direct-Line, but then it isn't really testing how the bot would act against Teams...