Schools, more than ever, are looking for products that can integrate with their learning management system. Depending on the needs of the school, this integration may be as simple as being able to sign into an app with LMS credentials or as advanced as allowing the app to pass grades back to the gradebook in the LMS.
Microsoft Teams is one of the fastest growing LMSs in the nation, with many schools switching to the platform just in the past year. With so many districts adopting the Office 365 suite, it's important for edtech vendors to know how Microsoft Teams works.
In this article, we'll focus specifically on Microsoft Teams integration through the Microsoft Graph API and discuss what your app can do with the API.
Single Sign-On (SSO)
Microsoft allows developers to authenticate users into their third-party apps by having the user sign in with their Microsoft credentials. This process is called SSO - or single sign-on.
An app can either create an account for a new user who signs in with their Microsoft credentials or match the user with an existing account stored in the app's database. While many apps match users based on their email address listed in Microsoft Teams, there are several reasons why you should choose a different identifier. Note that the authentication process will never expose the user's Microsoft password to the app.
Once a user is authenticated, the app can start to communicate with the user's Microsoft Teams environment. This is where the API comes in.
Through the API, apps that authenticate a user through the Microsoft Graph API can make requests back to an authenticated user's Microsoft Teams environment. This means that your app can generate resources that appear for the user in Microsoft Teams. Content integration lets your app talk to Microsoft Teams while maintaining the user's experience in the app. Most of the API commands that your app will use to enable content integration will be found under the Microsoft education API, a subset of the Microsoft Graph platform.
For example, a teacher can log into your app with their Microsoft Teams credentials and assign a lesson from your app. Your app then acts as the teacher and sends the necessary information to Microsoft Teams to generate the lesson and post it to the teacher's specified course.
The Microsoft Graph API allows apps to read, create, or modify a variety of resources in the user's Microsoft Teams environment, including:
- Student submissions
In addition to updating resources, the Microsoft Graph API can also let your app send and update scores in the user's gradebook. This reduces the amount of time teachers have to usually spend to get grades from an external source into their gradebooks.
This benefits the developer, as well. By relying on the API to sync grades between Microsoft Teams gradebooks and your app, you won't have to spend time developing your own gradebook or other methods to export grades.
Note that grades and feedback can be updated by your app through the education outcomes APIs. These APIs are (as of January 2021) in beta and are subject to change.
The Microsoft Graph Education API can be used to retrieve a lists of users, their courses, and their enrollments. This is helpful if you want to be able to create accounts for users before they login. In addition, rostering through the API lets you gather lists of enrollments in real time, reflecting changes when students leave or join courses during the school year.
In addition, the Graph APIs can also let school admins manage syncs from Microsoft School Data Sync (SDS) to Microsoft Azure Active Directory and Microsoft 365 services (such as Microsoft Teams). The SDS management APIs can be used to sync data from an SIS to Azure.
How to Get Started Using the Microsoft Graph API
The first step to creating a Microsoft Teams integration is to sign up for the Microsoft 365 Developer Program, where you will be given access to a sandbox environment and the Microsoft Education Graph API. Microsoft also provides guides on getting started with several supported languages and platforms.
If you're interested in building out a Microsoft Teams integration, you should check out the Edlink platform! We've already written the connections to Microsoft Teams and other LMSs, so you can spend less time figuring out the API and more time developing your core product. If you'd like to learn more, we'd be more than happy to chat with you! We can be reached at firstname.lastname@example.org and at our support page.