RSC with Graph API
This sample application showcases how to implement Resource Specific Consent (RSC) for accessing Microsoft Graph APIs within Microsoft Teams. It provides capabilities for requesting permissions, interacting through a Teams tab, and managing user notifications, enhancing the app's integration and usability.
Included Features
- Tabs
- RSC Permissions
Interaction with app
Try it yourself - experience the App in your Microsoft Teams client
Please find below demo manifest which is deployed on Microsoft Azure and you can try it yourself by uploading the app manifest (.zip file link below) to your teams and/or as a personal app. (Uploading must be enabled for your tenant, see steps here).
RSC with Graph API: Manifest
Prerequisites
.NET Core SDK version 6.0
# determine dotnet version dotnet --version
Run the app (Using Teams Toolkit for Visual Studio)
The simplest way to run this sample in Teams is to use Teams Toolkit for Visual Studio.
- Install Visual Studio 2022 Version 17.14 or higher Visual Studio
- Install Teams Toolkit for Visual Studio Teams Toolkit extension
- In the debug dropdown menu of Visual Studio, select default startup project > Microsoft Teams (browser)
- Right-click the 'M365Agent' project in Solution Explorer and select Microsoft 365 Agents Toolkit > Select Microsoft 365 Account
- Sign in to Microsoft 365 Agents Toolkit with a Microsoft 365 work or school account
- Set
Startup Item
asMicrosoft Teams (browser)
. - Press F5, or select Debug > Start Debugging menu in Visual Studio to start your app
- In the opened web browser, select Add button to install the app in Teams
If you do not have permission to upload custom apps (uploading), Microsoft 365 Agents Toolkit will recommend creating and using a Microsoft 365 Developer Program account - a free program to get your own dev environment sandbox that includes Teams.
Setup
Register your app with Microsoft identity platform via the Microsoft Entra ID portal (Microsoft Entra ID app registration)
- Your app must be registered in the Microsoft Entra ID portal to integrate with the Microsoft identity platform and call Microsoft Graph APIs. See Register an application with the Microsoft identity platform.
Note - Make sure you have added
TeamsAppInstallation.ReadForUser.All
as Application level
- Your app must be registered in the Microsoft Entra ID portal to integrate with the Microsoft identity platform and call Microsoft Graph APIs. See Register an application with the Microsoft identity platform.
Note - Make sure you have added
Clone the repository
git clone https://github.com/OfficeDev/microsoft-teams-samples.git
Build your solution
- Launch Visual Studio
- File -> Open -> Project/Solution
- Navigate to
samples/graph-rsc
folder - Select
RSCDemo.sln
file - Build the solution
Run ngrok - point to port 3978
ngrok http 3978 --host-header="localhost:3978"
Alternatively, you can also use the
dev tunnels
. Please follow Create and host a dev tunnel and host the tunnel with anonymous user access command as shown below:devtunnel host -p 3978 --allow-anonymous
Update appsettings.json
- Update configuration for
<<Client Id>>
,<<Client Secret>>
and<<Tenant Id>>
with theMicrosoftAppId
,MicrosoftAppPassword
andTenantId
which was generated while doing Microsoft Entra ID app registration in your Azure Portal.
- Update configuration for
Run the bot from Visual Studio:
- Press
F5
to run the project
- Press
Setup the
manifest.json
in the/appPackage
folder Replace the following details:- Replace
<<Your Microsoft APP Id>>
at all the places with your MicrosoftAppId received while doing Microsoft Entra ID app registration in Azure portal [Your tunnel Domain]
with base Url domain. E.g. if you are using ngrok it would behttps://1234.ngrok-free.app
then your domain-name will be1234.ngrok-free.app
and if you are using dev tunnels then your domain will be like:12345.devtunnels.ms
.- Zip up the contents of the
appPackage
folder to create amanifest.zip
- Upload the
manifest.zip
to Teams (in the Apps view click "Upload a custom app")
- Replace
Running the sample
App review:
App permission:
Permission list:
Tab Page
Select Reciepient
Sent Notification
Further Reading.
- Graph RSC
- Upload app manifest file (zip file) to your team.