Microsoft Teams Client API – coming soon, not ready yet
Last month I blogged about the StreamDeck announcement – which is now once again available from the Elgato Plugin Store – and what it meant for developers, offering potential access to a new client-side API. I promised to find out more information about that API, what it does, and how you can use it.
My investigations took a few unexpected turns, and I made some new friends at Microsoft in the process. 🤪 Here’s what I found out, and why you should be excited about the possibilities that are going to open up for developers in 2023.
There IS going to be a supported Client API
I’ve spoken to Microsoft, who have confirmed that there will be a supported API for clients to use to remotely control some Teams functionality.
What we’re seeing with the StreamDeck is the first iteration of that, which was only ever intended for the StreamDeck. Think of it as an early prototype: it’s fully functional and tested for use with the StreamDeck, but not outside of those parameters.
As such, whilst it’s possible for developers to use it today, it’s not a great idea. It’s going to break. It’s going to change, and it’s going to undergo functional changes as it does so. These changes will break your solutions.
I know from experience that blog posts last forever (I’m still getting questions about why Skype for Business Online connections don’t work), so I’ve taken the decision not to document the API in its current state today.
This is because I’d rather wait for the more stable version that’s intended for third party developers. Once that is there, of course – I’m going to be all over it.
It’s early days for both the StreamDeck plugin, and this API
It did then return a month later, but this underlines what I’m saying: don’t build solutions on this API just yet.
Let Microsoft work out the issues, get StreamDeck running for a bit, iterate the API and then come back once they’re ready to open it up a bit more. Otherwise, your app is going to be facing the same sorts of issues, and you won’t have any recourse as you’re using something that’s undocumented.
Let’s get excited about what this means
Knowing that Microsoft are in fact working on a more public version of this API is great news.
I know (because I hear from you!) that there are many of us – myself included – that would love a good client API for Microsoft Teams, similar to the one we had with Microsoft Lync and Skype for Business.
The key question here is what functionality will be available. The StreamDeck is fairly limited to just in-meeting controls. I’d love to see an API that is broader in functionality and covered things like:
- answering / rejecting incoming calls
- setting presence
- changing devices
I think there are also some interesting applications that could surface with the ability to send and receive chat messages in a current call or meeting, or with a application channel that allowed communication between a third party application and a in-meeting Teams App. (anyone remember the UCMA conversation context channel!)
But, that’s just me. I want to hear from you! Let me know in the comments what YOU think Microsoft should add to the Client API, and why.