The Meeting Token Generator app is a sample Microsoft Teams app that extends meetings in Teams. Through this app, meeting participants can request a "token", which is generated sequentially so that each participant has a fair opportunity to interact. This can be useful in situations like scrum meetings, Q&A sessions, etc.
.NET Core SDK version 3.1
# determine dotnet version
dotnet --version
Nodejs version 10.21.0+ (use the LTS version)
# determine dotnet version
node --version
Ngrok (Only for devbox testing) Latest (any other tunneling software can also be used)
# run ngrok locally
ngrok http -host-header=localhost 3978
We assume working knowledge of the following technologies to gain full understanding of the app
The app uses the Teams extensibility features described on the following pages:
WebAppDomain
."MicrosoftAppId"
: Application (client) ID of the bot's Azure AD application"MicrosoftAppPassword"
: client secret of the bot's Azure AD application"AzureAd"."TenantId"
: Tenant ID of the tenant where the app will be used. Note that the sample will only work in this tenant."AzureAd"."ApplicationId "
: Set to the same value as MicrosoftAppId
above."ContentBubbleUrl "
: Content bubble iframe url (default. https://[WebAppDomain]/contentBubble.html
). Remember that [WebAppDomain]
will be your ngrok domain, so the content bubble URL will be similar to https://f631****.ngrok.io/contentBubble.html
.manifestVersion
to "devPreview"webApplicationInfo
section, using MicrosoftAppId
and WebAppDomain
values from the previous section.
"webApplicationInfo": {
"id": "[MicrosoftAppId]",
"resource": "api://[WebAppDomainName]/[MicrosoftAppId]"
}
App
folder in a terminalnpm install
Run npm run build
to build the app.
This generates the dist folder inside the app where the assets will generated/copied. The server will serve the static files from this location.
You can build and run the project from the command line or an IDE:
A) From a command line:
# run the server
cd TokenApp
dotnet run
B) From an IDE:
TokenApp
folderTokenApp.csproj
fileF5
to run the projectFollow these instructions to enable developer preview. Note that Developer preview mode must be enabled on each Teams client app or browser.
In-meeting tabs are only available in the Teams desktop client. They will not be visible when you run Teams in a web browser.
Resources/Manifest
folder.
The sample app uses an in-memory store to maintain token information and the service URL for the tenant. If you restart the project, you must run the following command to recapture the service URL: @[BotName] reset
In your own projects, please use a durable storage mechanism to store the service URL for the tenant.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.