Updates from: 06/18/2022 01:21:24
Service Microsoft Docs article Related commit history on GitHub Change details
platform API References https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/API-references.md
Title: Meeting apps API references
-description: Identify the meeting apps API references with examples and Code samples, Teams apps meetings user participant role api user context notification signal query.
+description: Learn to identify the meeting apps API references with examples and Code samples, Teams apps meetings user role api user context notification signal query.
ms.localizationpriority: medium
The following table provides a list of APIs available across the Microsoft Teams
|Method| Description| Source| |||-|
-|[**Get user context**](#get-user-context-api)| Get contextual information to display relevant content in a Teams tab.| [MSTC SDK](/microsoftteams/platform/tabs/how-to/access-teams-context#get-context-by-using-the-microsoft-teams-javascript-library) |
+|[**Get user context**](#get-user-context-api)| Get contextual information to display relevant content in a Microsoft Teams tab.| [MSTC SDK](/microsoftteams/platform/tabs/how-to/access-teams-context#get-context-by-using-the-microsoft-teams-javascript-library) |
|[**Get participant**](#get-participant-api)| Fetch participant information by meeting ID and participant ID. | [MSBF SDK](/dotnet/api/microsoft.bot.builder.teams.teamsinfo.getmeetingparticipantasync?view=botbuilder-dotnet-stable&preserve-view=true) |[**Send in-meeting notification**](#send-an-in-meeting-notification)| Provide meeting signals using the existing conversation notification API for user-bot chat and allows to notify user action that shows an in-meeting notification. | [MSBF SDK](/dotnet/api/microsoft.bot.builder.teams.teamsactivityextensions.teamsnotifyuser?view=botbuilder-dotnet-stable&preserve-view=true) | |[**Get meeting details**](#get-meeting-details-api)| Get a meeting's static metadata. | [MSBF SDK](/dotnet/api/microsoft.bot.builder.teams.teamsinfo.getmeetinginfoasync?view=botbuilder-dotnet-stable&preserve-view=true) |
In case of Recurring meeting type,
## Send real-time captions API
-The send real-time captions API exposes a POST endpoint for Microsoft Teams communication access real-time translation (CART) captions, human-typed closed captions. Text content sent to this endpoint appears to end users in a Microsoft Teams meeting when they have captions enabled.
+The send real-time captions API exposes a POST endpoint for Teams communication access real-time translation (CART) captions, human-typed closed captions. Text content sent to this endpoint appears to end users in a Teams meeting when they have captions enabled.
### CART URL
-You can get the CART URL for the POST endpoint from the **Meeting options** page in a Microsoft Teams meeting. For more information, see [CART captions in a Microsoft Teams meeting](https://support.microsoft.com/office/use-cart-captions-in-a-microsoft-teams-meeting-human-generated-captions-2dd889e8-32a8-4582-98b8-6c96cf14eb47). You don't need to modify the CART URL to use CART captions.
+You can get the CART URL for the POST endpoint from the **Meeting options** page in a Teams meeting. For more information, see [CART captions in a Microsoft Teams meeting](https://support.microsoft.com/office/use-cart-captions-in-a-microsoft-teams-meeting-human-generated-captions-2dd889e8-32a8-4582-98b8-6c96cf14eb47). You don't need to modify the CART URL to use CART captions.
#### Query Parameter
The following code provides an example of meeting end event payload:
|Sample name | Description | C# | Node.js | |-|--|--|--|
-| Meetings extensibility | Microsoft Teams meeting extensibility sample for passing tokens. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-token-app/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-token-app/nodejs) |
-| Meeting content bubble bot | Microsoft Teams meeting extensibility sample for interacting with content bubble bot in a meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-content-bubble/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-content-bubble/nodejs)|
-| Meeting meetingSidePanel | Microsoft Teams meeting extensibility sample for interacting with the side panel in-meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/nodejs)|
-| Details Tab in Meeting | Microsoft Teams meeting extensibility sample for interacting with Details Tab in-meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-details-tab/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-details-tab/nodejs)|
+| Meetings extensibility | Teams meeting extensibility sample for passing tokens. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-token-app/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-token-app/nodejs) |
+| Meeting content bubble bot | Teams meeting extensibility sample for interacting with content bubble bot in a meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-content-bubble/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-content-bubble/nodejs)|
+| Meeting meetingSidePanel | Teams meeting extensibility sample for interacting with the side panel in-meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-sidepanel/nodejs)|
+| Details Tab in Meeting | Teams meeting extensibility sample for interacting with Details Tab in-meeting. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-details-tab/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-details-tab/nodejs)|
|Meeting Events Sample|Sample app to show real-time Teams meeting events|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-events/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-events/nodejs)| |Meeting Recruitment Sample|Sample app to show meeting experience for recruitment scenario.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-recruitment-app/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meeting-recruitment-app/nodejs)| |App installation using QR code|Sample app that generates the QR code and installs the app using the QR code|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-installation-using-qr-code/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-installation-using-qr-code/nodejs)|
platform Designing Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/design/designing-apps-in-meetings.md
description: Learn how to design apps in Teams meetings and get the Microsoft Te
ms.localizationpriority: medium
-keywords: UI kit template in-meeting responsive behavior shared meeting stage
# Designing your Microsoft Teams meeting extension
In-meeting dialogs can vary in size to account for different scenarios. Make sur
You can allow users to share and interact with some or all of your app content on the meeting stage. Here are examples of how people might use this feature during a meeting:
-* Editing a document
+* Editing a document.
* Whiteboarding
-* Reviewing a dashboard
-* Watching a video
-* Playing a game
+* Reviewing a dashboard.
+* Watching a video.
+* Playing a game.
Apps shared to the meeting stage occupy the same space as a shared screen. The stage reorients for all meeting participants the same way, too.
platform Enable And Configure Your App For Teams Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/enable-and-configure-your-app-for-teams-meetings.md
Title: Enable and configure your apps for Teams meetings
-description: Enable and configure your apps for Teams meetings and different meeting scenarios, update app manifest, configure features, such as, in-meeting dialog, shared meeting stage, meeting sidepanel, and more
+description: Learn how to enable and configure your apps for Teams meetings and different meeting scenarios, update app manifest, configure features and more.
ms.localizationpriority: high
platform Meeting App Extensibility https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/meeting-app-extensibility.md
Title: Unified meetings apps
-description: Learn about Teams meeting lifecycle and user's meeting experience in desktop and mobile environment, participant and user roles and types, integrate bots and message extension in meeting lifecycle.
+description: Learn about Teams meeting lifecycle and users meeting experience in desktop and mobile, User types, integrate bots and message extension in meeting lifecycle.
ms.localizationpriority: medium
platform Teams Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
Title: Apps for Teams meetings
-description: overview of apps in Teams meetings based on participant and user role
+description: In this article, learn how apps works in Microsoft Teams meetings based on participant and user role and app extensibility.
ms.localizationpriority: medium
-keywords: teams apps meetings user participant role api
# Apps for Teams meetings
platform Teams Live Share Capabilities https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-capabilities.md
The [Live Share SDK](https://github.com/microsoft/live-share-sdk) is a JavaScrip
**npm** ```bash
-$ npm install @microsoft/live-share --save
+npm install @microsoft/live-share --save
``` **Yarn** ```bash
-$ yarn add @microsoft/live-share
+yarn add @microsoft/live-share
``` ## Register RSC permissions
To enable the Live Share SDK for your meeting extension, you must first add the
Follow the steps to join a session that is associated with a user's meeting:
-1. Initialize the Teams Client SDK
-2. Initialize the [TeamsFluidClient](/javascript/api/@microsoft/live-share/teamsfluidclient)
-3. Define the data structures you want to synchronize. For example, `SharedMap`
-4. Join the container
+1. Initialize the Teams Client SDK.
+2. Initialize the [TeamsFluidClient](/javascript/api/@microsoft/live-share/teamsfluidclient).
+3. Define the data structures you want to synchronize. For example, `SharedMap`.
+4. Join the container.
Example:
platform Teams Live Share Media Capabilities https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-media-capabilities.md
document.getElementById("change-track-button").onclick = () => {
}; ```
-> [!Note]
-> While you can use the `EphemeralMediaSession` object to synchronize media directly, using the `MediaPlayerSynchronizer` unless you want more fine tuned control of the synchronization logic. Depending on the player you use in your app, you might want to create a delegate shim to make your web player's interface match the HTML media interface.
+ > [!Note]
+ > While you can use the `EphemeralMediaSession` object to synchronize media directly, using the `MediaPlayerSynchronizer` unless you want more fine tuned control of the synchronization logic. Depending on the player you use in your app, you might want to create a delegate shim to make your web player's interface match the HTML media interface.
## Suspensions and wait points
platform Teams Live Share Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-overview.md
Building collaborative apps can be difficult, time consuming, costly, and includ
Here are some key benefits of the Live Share SDK:
-* Zero-hassle session management and security
-* Stateful and stateless distributed data structures
-* Media extensions to easily synchronize video and audio
-* Respect meeting privileges using role verification
-* Free and fully managed service with low latency
-* Intelligent audio ducking
+* Zero-hassle session management and security.
+* Stateful and stateless distributed data structures.
+* Media extensions to easily synchronize video and audio.
+* Respect meeting privileges using role verification.
+* Free and fully managed service with low latency.
+* Intelligent audio ducking.
:::image type="content" source="../assets/images/teams-live-share/Teams-live-share-schematics.png" alt-text="Teams Live Share":::
platform Teams Live Share Tutorial https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-tutorial.md
start().catch((error) => console.error(error));
## Join a Fluid container
-Not all of your apps views will need to be collaborative. The `stage` view _always_ needs collaborative features, the `content` view _may_ need collaborative features, and the `config` view should _never_ need collaborative features. For the views that do need collaborative features you'll need to join a Fluid container associated with the current meeting.
+Not all of your apps views will need to be collaborative. The `stage` view *always* needs collaborative features, the `content` view *may* need collaborative features, and the `config` view should *never* need collaborative features. For the views that do need collaborative features you'll need to join a Fluid container associated with the current meeting.
Joining the container for the meeting is as simple as creating a new [TeamsFluidClient](/javascript/api/@microsoft/live-share/teamsfluidclient) and then calling it's [joinContainer()](/javascript/api/@microsoft/live-share/teamsfluidclient#@microsoft-live-share-teamsfluidclient-joincontainer) method. When running locally you'll need to pass in a custom connection config with a special `LOCAL_MODE_TENANT_ID` but otherwise, join a local container is the same as joining a container in Teams.
The next change that needs to be made is to change the `updateDice` function so
### Handle remote changes
-The values returned from `diceMap` are only a snapshot in time. To keep the data up to date as it changes an event handler must be set on the `diceMap` to call `updateDice` each time that the `valueChanged` event is sent. To get a list of events fired and the values passed to those events, see [SharedMap](https://fluidframework.com/docs/data-structures/map/).
+The values returned from `diceMap` are only a snapshot in time. To keep the data up to date as it changes an event handler must be set on the `diceMap` to call `updateDice` each time that the `valueChanged` event is sent. To get a list of events fired and the values passed to those events, see [SharedMap](https://fluidframework.com/docs/data-structures/map/).
-```js
+```js
diceMap.on("valueChanged", updateDice); ``` ## Write the side panel view
-The side panel view, loaded through the tab `contentUrl` with the `sidePanel` frame context, is displayed to the user in a side panel when they open your app within a meeting. The goal of this view is to let a user select content for the app prior to sharing the app to the meeting stage. For the Live Share SDK apps, the side panel view can also be used as a companion experience for the app. Calling [joinContainer()](/javascript/api/@microsoft/live-share/teamsfluidclient#@microsoft-live-share-teamsfluidclient-joincontainer) from the side panel view connects to the same Fluid container the stage view is connected to. This container can then be used to communicate with the stage view. Ensure that you're communicating with everyone's stage view _and_ side panel view.
+The side panel view, loaded through the tab `contentUrl` with the `sidePanel` frame context, is displayed to the user in a side panel when they open your app within a meeting. The goal of this view is to let a user select content for the app prior to sharing the app to the meeting stage. For the Live Share SDK apps, the side panel view can also be used as a companion experience for the app. Calling [joinContainer()](/javascript/api/@microsoft/live-share/teamsfluidclient#@microsoft-live-share-teamsfluidclient-joincontainer) from the side panel view connects to the same Fluid container the stage view is connected to. This container can then be used to communicate with the stage view. Ensure that you're communicating with everyone's stage view *and* side panel view.
The sample's side panel view prompts the user to select the share to stage button.
platform Teams Together Mode https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-together-mode.md
The following process gives an overview to create a scene only app:
:::image type="content" source="../assets/images/apps-in-meetings/create-together-mode-scene-flow.png" alt-text="Create scene only app" border="false":::
-A scene only app is still an app in Microsoft Teams. The Scene studio handles the app package creation in the background. Multiple scenes in a single app package appear as a flat list to the users.
+A scene only app is still an app in Teams. The Scene studio handles the app package creation in the background. Multiple scenes in a single app package appear as a flat list to the users.
> [!NOTE] > Users can't initiate Together Mode from mobile. However, after a user joins a meeting through mobile and Together Mode is turned on from desktop, the mobile users who have turned on the video, will appear in Together Mode on desktop.
A scene only app is still an app in Microsoft Teams. The Scene studio handles th
You must have a basic understanding of the following to use custom Together Mode scenes: * Define scene and seats in a scene.
-* Have a Microsoft Developer account and be familiar with the Microsoft Teams [Developer Portal](../concepts/build-and-test/teams-developer-portal.md) and App Studio.
+* Have a Microsoft Developer account and be familiar with the Teams [Developer Portal](../concepts/build-and-test/teams-developer-portal.md) and App Studio.
* Understand the [concept of app sideloading](../concepts/deploy-and-publish/apps-upload.md). * Ensure that the Administrator has granted permission to [**Upload a custom app**](../concepts/deploy-and-publish/apps-upload.md) and select all filters as part of App Setup and Meeting policies respectively.
Consider the following practices for a scene building experience:
## Build a scene using the Scene studio
-Microsoft has a Scene studio that allows you to build scenes. It's available on [Scenes Editor - Teams Developer Portal](https://dev.teams.microsoft.com/scenes). This document refers to Scene studio in the Microsoft Teams Developer Portal. The interface and functionalities are all the same in App Studio Scene Designer.
+Microsoft has a Scene studio that allows you to build scenes. It's available on [Scenes Editor - Teams Developer Portal](https://dev.teams.microsoft.com/scenes). This document refers to Scene studio in the Teams Developer Portal. The interface and functionalities are all the same in App Studio Scene Designer.
A scene in the context of the Scene studio is an artifact that contains the following elements:
To build a scene using the Scene studio, follow these steps:
![Assign spot](../assets/images/apps-in-meetings/assign-spot.png)
-1. Select **Save** and select **View in Teams** to quickly test your scene in Microsoft Teams.
+1. Select **Save** and select **View in Teams** to quickly test your scene in Teams.
- * Selecting **View in Teams** automatically creates a Microsoft Teams app that can be viewed in the **Apps** page in the Teams Developer Portal.
+ * Selecting **View in Teams** automatically creates a Teams app that can be viewed in the **Apps** page in the Teams Developer Portal.
* Selecting **View in Teams** automatically creates an app package that is appmanifest.json behind the scene. You can go to **Apps** from the menu and access the automatically created app package. * To delete a scene you created, select **Delete scene** on the top bar.
To select scenes and activate custom Together Mode scenes, follow these steps:
1. Create a new test meeting. >[!NOTE]
- > On selecting **Preview** in the Scene studio, the scene is installed as an app in Microsoft Teams. This is the model for a developer to test and try out scenes from the Scene studio. After a scene is shipped as an app, users see these scenes in the scene gallery.
+ > On selecting **Preview** in the Scene studio, the scene is installed as an app in Teams. This is the model for a developer to test and try out scenes from the Scene studio. After a scene is shipped as an app, users see these scenes in the scene gallery.
1. From the **Gallery** drop-down in the upper-left corner, select **Together Mode**. The **Picker** dialog box appears and the scene that is added is available.
platform Bot Basics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-basics.md
Title: Bot activity handlers
-description: Understand the bot activity handlers in Teams.
+description: In this article, learn about bot activity handlers, frameworks, Teams activity handlers and bot logic in Microsoft Teams.
ms.localizationpriority: medium
-keywords: activity handler framework bot card consent channel event
# Bot activity handlers This document builds on the article on [how bots work](https://aka.ms/how-bots-work) in the core [Bot Framework documentation](https://aka.ms/azure-bot-service-docs). The primary difference between bots developed for Microsoft Teams and the core Bot Framework is in the features provided in Teams.
-To organize the conversational logic for your bot, an activity handler is used. Activities are handled in two ways using Teams activity handlers and bot logic. The Teams activity handler adds support for Microsoft Teams-specific events and interactions. The bot object contains the conversational reasoning or logic for a turn and exposes a turn handler, which is the method that can accept incoming activities from the bot adapter.
+To organize the conversational logic for your bot, an activity handler is used. Activities are handled in two ways using Teams activity handlers and bot logic. The Teams activity handler adds support for Teams-specific events and interactions. The bot object contains the conversational reasoning or logic for a turn and exposes a turn handler, which is the method that can accept incoming activities from the bot adapter.
## Teams activity handlers
platform Bot Features https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-features.md
Title: Bots and SDKs
-description: Overview of the tools and SDKs for building Microsoft Teams bots.
+description: In this article, learn tools and SDKs for building Microsoft Teams bots and Bots with the Microsoft Bot Framework.
ms.localizationpriority: medium
platform Call Notifications https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/call-notifications.md
Title: Incoming call notifications
-description: Learn about detailed technical information on handling notifications from incoming calls, redirecting and authenticating calls using code samples
+description: In this module, learn about detailed technical information on handling notifications from incoming calls, redirecting and authenticating calls using code samples
ms.localizationpriority: medium
-keywords: calling calls notifications callback region affinity
Last updated 04/02/2019
platform Calls Meetings Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/calls-meetings-bots-overview.md
Title: Calls and online meetings bots
-description: Learn how your Microsoft Teams apps can interact with users using voice and video using Microsoft Graph APIs for calls and online meetings and learn about real-time media streams
+description: In this module, learn how your Microsoft Teams apps can interact with users using voice and video using Microsoft Graph APIs for calls and online meetings and learn about real-time media streams
ms.localizationpriority: medium
-keywords: calling calls audio video IVR voice online meetings real-time media streams bot
# Calls and online meetings bots
To use these Graph APIs in a Teams app, you create a bot and specify some additi
In addition, the Real-time Media Platform enables bots to interact with Teams calls and meetings using real-time voice, video, and screen sharing. A bot that participates in audio or video calls and online meetings is a regular Microsoft Teams bot with few extra features used to register the bot.
-The Teams app manifest with two additional settings `supportsCalling` and `supportsVideo`, Graph permissions for your bot's Microsoft App ID, and tenant admin consent enable you to register the bot. In registering a calls and meetings bot for Teams, the Webhook URL is mentioned, which is the webhook endpoint for all incoming calls to your bot. An application-hosted media bot requires the Microsoft.Graph.Communications.Calls.Media .NET library to access the audio and video media streams, and the bot must be deployed on a Windows Server machine or Windows Server guest Operating System (OS) in Azure. Bots on Teams support only a specific set of media formats for audio and video content.
+The Teams app manifest with two additional settings `supportsCalling` and `supportsVideo`, Graph permissions for your bot's Microsoft App ID, and tenant admin consent enable you to register the bot. In registering a calls and meetings bot for Teams, the Webhook URL is mentioned, which is the webhook endpoint for all incoming calls to your bot. An application-hosted media bot requires the Microsoft.Graph.Communications.Calls.Media .NET library to access the audio and video media streams, and the bot must be deployed on a Windows Server machine or Windows Server guest Operating System (OS) in Azure. Bots on Teams supports only a specific set of media formats for audio and video content.
Now, you must understand some core concepts, terminology, and conventions.
Calls are either peer-to-peer between a person and your bot, or multiparty betwe
Following are the different call types and permissions required for the call:
-* A user can initiate a peer-to-peer call with your bot or invite your bot into an existing multiparty call. The multiparty call isn't enabled yet in the Teams user interface.
+* A user can initiate a peer-to-peer call with your bot or invite your bot into an existing multiparty call. The multiparty call is not enabled yet in the Teams user interface.
> [!NOTE]
- > User initiated calls to a bot are currently not supported on Microsoft Teams mobile platform.
+ > User initiated calls to a bot are currently not supported on Teams mobile platform.
-* Graph permissions aren't necessary for a user to initiate a peer-to-peer call with your bot. Additional permissions are needed for your bot to participate in a multiparty call, or for your bot to initiate a peer-to-peer call with a user.
-* A call can start as peer-to-peer and eventually become a multiparty call. Your bot can initiate multiparty calls by inviting others, provided your bot has the proper permissions. If your bot doesn't have permissions to participate in group calls and if a participant adds another participant to the call, your bot is dropped from the call.
+* Graph permissions are not necessary for a user to initiate a peer-to-peer call with your bot. Additional permissions are needed for your bot to participate in a multiparty call, or for your bot to initiate a peer-to-peer call with a user.
+* A call can start as peer-to-peer and eventually become a multiparty call. Your bot can initiate multiparty calls by inviting others, provided your bot has the proper permissions. If your bot does not have permissions to participate in group calls and if a participant adds another participant to the call, your bot is dropped from the call.
### Signals
From a Teams user's perspective, there are two kinds of online meetings, ad hoc
### Real-time media
-When a bot is participating in a call or online meeting, it must deal with audio and video streams. When users talk on a call, show themselves on a webcam, or present their screens in a meeting, to a bot it's shown as audio and video streams. If a bot wants to say something as simple as, **press 0 to reach the operator** in an interactive voice response (IVR) scenario, it requires playing a .WAV file. Collectively, this is referred to as media or real-time media.
+When a bot is participating in a call or online meeting, it must deal with audio and video streams. When users talk on a call, show themselves on a webcam, or present their screens in a meeting, to a bot it is shown as audio and video streams. If a bot wants to say something as simple as, **press 0 to reach the operator** in an interactive voice response (IVR) scenario, it requires playing a .WAV file. Collectively, this is referred to as media or real-time media.
-Real-time media refers to scenarios where media must be processed in real-time, as opposed to playback of previously recorded audio or video. Dealing with media streams, particularly real-time media streams, is complex. Microsoft has created the Real-time Media Platform to handle these scenarios and to offload as much of the traditional heavy lifting of real-time media processing as possible. When the bot answers an incoming call or joins a new or existing call, it needs to tell the Real-time Media Platform how media is handled. If you're building an IVR application, you can offload the expensive audio processing to Microsoft. Alternately, if your bot requires direct access to media streams, that scenario is also supported. There are two types of media processing:
+Real-time media refers to scenarios where media must be processed in real-time, as opposed to playback of previously recorded audio or video. Dealing with media streams, particularly real-time media streams, is extremely complex. Microsoft has created the Real-time Media Platform to handle these scenarios and to offload as much of the traditional heavy lifting of real-time media processing as possible. When the bot answers an incoming call or joins a new or existing call, it needs to tell the Real-time Media Platform how media is handled. If you are building an IVR application, you can offload the expensive audio processing to Microsoft. Alternately, if your bot requires direct access to media streams, that scenario is also supported. There are two types of media processing:
-* **Service-hosted media**: Bots focus on managing application workflow, such as routing calls and offload audio processing to the Microsoft Real-time Media Platform. With service-hosted media, you have several options to implement and host your bot. A service-hosted media bot can be implemented as a stateless service as it doesn't process media locally. Service-hosted media bots can use the following APIs:
+* **Service-hosted media**: Bots focus on managing application workflow, such as routing calls and offload audio processing to the Microsoft Real-time Media Platform. With service-hosted media, you have several options to implement and host your bot. A service-hosted media bot can be implemented as a stateless service as it does not process media locally. Service-hosted media bots can use the following APIs:
* `PlayPrompt` for playing an audio clip. * `Record` for recording audio clips.
platform Debugging Local Testing Calling Meeting Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/debugging-local-testing-calling-meeting-bots.md
Title: Debug your calling and meeting bot locally
-description: Learn how you can also use ngrok to develop calls and online meeting bots on your local PC.
+description: In this module, learn how you can also use ngrok to develop calls and online meeting bots on your local PC.
ms.localizationpriority: medium
-keywords: local development ngrok tunnel
Last updated 11/18/2018
platform Real Time Media Concepts https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/real-time-media-concepts.md
Title: Real-time media calls and online meetings with Microsoft Teams
-description: Understand key concepts in building bot that can conduct real-time audio and video calls and online meetings. Learn about media sessions, frame rate, audio/video format, and reference to developer resources
+description: Learn key concepts in building bot that can conduct real-time audio and video calls and online meetings.
ms.localizationpriority: medium
-keywords: audio stream video stream audio/video calling meeting real-time media application-hosted media service-hosted media
# Real-time media calls and meetings with Microsoft Teams
platform Registering Calling Bot https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/registering-calling-bot.md
Title: Register calls and meetings bot for Microsoft Teams
-description: Learn how to register a new audio/video calling bot for Microsoft Teams, create a new bot or add calling capability, and add graph permissions.
+description: In this module, learn how to register a new audio/video calling bot for Microsoft Teams, create a new bot or add calling capability, and add graph permissions.
ms.localizationpriority: medium
-keywords: calling bot audio/video audio video media
# Register calls and meetings bot for Microsoft Teams
platform Requirements Considerations Application Hosted Media Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/calls-and-meetings/requirements-considerations-application-hosted-media-bots.md
Title: Requirements and considerations for application-hosted media bots
-description: Understand important requirements and considerations, and scalability and performance considerations related to creating application-hosted media bots for Microsoft Teams using code example and samples.
+description: Learn important requirements and considerations, and scalability and performance considerations related to creating application-hosted media bots for Teams
ms.localizationpriority: medium
-keywords: application-hosted media Windows server Azure VM
Last updated 11/16/2018
The next section provides details on where real-time media calls are located.
## Real-time media calls stay where they're created
-Real-time media calls stay on the computer where they were created. A real-time media call is pinned to the virtual machine (VM) instance that accepted or started the call. Media from a Microsoft Teams call or meeting flows to that VM instance, and media the bot sends back to Microsoft Teams must also originate from that VM. If there are any real-time media calls in progress when the VM is stopped, those calls are abruptly terminated. If the bot has prior knowledge of the pending VM shutdown, it can end the calls.
+Real-time media calls stay on the computer where they were created. A real-time media call is pinned to the virtual machine (VM) instance that accepted or started the call. Media from a Teams call or meeting flows to that VM instance, and media the bot sends back to Teams must also originate from that VM. If there are any real-time media calls in progress when the VM is stopped, those calls are abruptly terminated. If the bot has prior knowledge of the pending VM shutdown, it can end the calls.
The next section provides details on accessibility of application-hosted media bots.
platform Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/design/bots.md
Title: Designing your bot
-description: Learn how to design a Teams bot and get the Microsoft Teams UI Kit.
+description: In this module, learn how to design and add a Teams bot and its use cases, and get the Microsoft Teams UI Kit.
ms.localizationpriority: high
platform Add Power Virtual Agents Bot To Teams https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/add-power-virtual-agents-bot-to-teams.md
Title: Add Power Virtual Agents chatbot to Teams
+ Title: Add Power Virtual Agents chatbot
description: Learn to integrate a Power Virtual Agents chatbot in the Teams platform to create conversational chatbots and to integrate it with Teams
Power Virtual Agents lets you create powerful chatbots that can answer questions
These bots can be created easily without the need for data scientists or developers. > [!NOTE]
-> * By adding your chatbot to Microsoft Teams, some of the data, such as bot content and user chat content, is shared with Microsoft Teams. It means that your data flows outside of your [organizationΓÇÖs compliance and geographic or regional boundaries](/power-virtual-agents/data-location). <br/>
+>
+> * By adding your chatbot to Microsoft Teams, some of the data, such as bot content and user chat content, is shared with Teams. It means that your data flows outside of your [organizationΓÇÖs compliance and geographic or regional boundaries](/power-virtual-agents/data-location). <br/>
> * You must not use Microsoft Power Platform to create apps that are to be published to the Teams app store. Microsoft Power Platform apps can be published to an organizationΓÇÖs app store only. ## Make your chatbot available in Teams through the Power Virtual Agents portal
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/authentication/add-authentication.md
Title: Add authentication to your Teams bot
-description: How to add OAuth authentication to a bot in Microsoft Teams using Azure Active Directory. Learn how to create, deploy, and integrate authentication-enabled bots.
+description: Learn how to add OAuth authentication to a bot in Teams using Azure Active Directory. Learn how to create, deploy, and integrate authentication-enabled bots.
ms.localizationpriority: medium
-keywords: resource group bot registration Azure emulator bot manifest deploy
# Add authentication to your Teams bot
In this procedure, you'll use an Azure AD provider; other Azure AD supported ide
### Configure the identity provider connection and register it with the bot
-Note-there are two options for Service Providers here-Microsoft Azure Active Directory (Azure AD) V1 and Microsoft Azure Active Directory (Azure AD) V2. The differences between the two providers are summarized [here](/azure/active-directory/azuread-dev/azure-ad-endpoint-comparison), but in general, V2 provides more flexibility with respect to changing bot permissions. Graph API permissions are listed in the scopes field, and as new ones are added, bots will allow users to consent to the new permissions on the next sign in. For V1, the bot consent must be deleted by the user for new permissions to be prompted in the OAuth dialog.
+Note-there are two options for Service Providers here- Azure AD V1 and Azure AD V2. The differences between the two providers are summarized [here](/azure/active-directory/azuread-dev/azure-ad-endpoint-comparison), but in general, V2 provides more flexibility with respect to changing bot permissions. Graph API permissions are listed in the scopes field, and as new ones are added, bots will allow users to consent to the new permissions on the next sign in. For V1, the bot consent must be deleted by the user for new permissions to be prompted in the OAuth dialog.
#### Microsoft Azure Active Directory (Azure AD) V1
The following image displays the corresponding selection in the resource page:
- If you selected either *Accounts in this organizational directory only (Microsoft only - Single tenant)* or *Accounts in any organizational directory(Microsoft Azure Active Directory (Azure AD) - Multi tenant)*, enter the **tenant ID** you recorded earlier for the Microsoft Azure Active Directory (Azure AD) app. This will be the tenant associated with the users who can be authenticated.
- - If you selected *Accounts in any organizational directory (Any Microsoft Azure Active Directory (Azure AD) - Multi tenant and personal Microsoft accounts, for example, Skype, Xbox, Outlook)* enter the word **common** instead of a tenant ID. Otherwise, the Microsoft Azure Active Directory (Azure AD) app will verify through the tenant whose ID was selected and exclude personal Microsoft accounts.
+ - If you selected *Accounts in any organizational directory (Any Microsoft Azure Active Directory (Azure AD) - Multi tenant and personal Microsoft accounts, for example, Skype, Xbox, Outlook)* enter the word **common** instead of a tenant ID. Otherwise, the Azure AD (Azure AD) app verifies through the tenant whose ID was selected and exclude personal Microsoft accounts.
h. For **Resource URL**, enter `https://graph.microsoft.com/`. This isn't used in the current code sample. i. Leave **Scopes** blank. The following image is an example:
The following image displays the corresponding selection in the resource page:
1. Complete the form as follows: 1. **Name**. Enter a name for the connection. You'll use this name in your bot in the `appsettings.json` file. For example, *BotTeamsAuthADv2*.
- 1. **Service Provider**. Select **Microsoft Azure Active Directory v2**. Once you select this, the Microsoft Azure Active Directory (Azure AD)-specific fields will be displayed.
+ 1. **Service Provider**. Select **Microsoft Azure Active Directory v2**. Once you select this, the Azure AD specific fields will be displayed.
1. **Client id**. Enter the Application (client) ID that you recorded for your Azure identity provider app in the steps above. 1. **Client secret**. Enter the secret that you recorded for your Azure identity provider app in the steps above. 1. **Token Exchange URL**. Leave this blank. 1. **Tenant ID**, enter the **Directory (tenant) ID** that you recorded earlier for your Azure identity app or **common** depending on the supported account type selected when you created the identity provider app. To decide which value to assign, follow these criteria:
- - If you selected either *Accounts in this organizational directory only (Microsoft only - Single tenant)* or *Accounts in any organizational directory(Microsoft Azure Active directory - Multi tenant)*, enter the **tenant ID** you recorded earlier for the Microsoft Azure Active Directory (Azure AD) app. This will be the tenant associated with the users who can be authenticated.
+ - If you selected either *Accounts in this organizational directory only (Microsoft only - Single tenant)* or *Accounts in any organizational directory(Microsoft Azure Active directory - Multi tenant)*, enter the **tenant ID** you recorded earlier for the Azure AD app. This will be the tenant associated with the users who can be authenticated.
- - If you selected *Accounts in any organizational directory (Any Microsoft Azure Active Directory (Azure AD) - Multi tenant and personal Microsoft accounts, for example, Skype, Xbox, Outlook)* enter the word **common** instead of a tenant ID. Otherwise, the Microsoft Azure Active Directory (Azure AD) app will verify through the tenant whose ID was selected and exclude personal Microsoft accounts.
+ - If you selected *Accounts in any organizational directory (Any Microsoft Azure Active Directory (Azure AD) - Multi tenant and personal Microsoft accounts, for example, Skype, Xbox, Outlook)* enter the word **common** instead of a tenant ID. Otherwise, the Azure AD app verifies through the tenant whose ID was selected and exclude personal Microsoft accounts.
1. For **Scopes**, enter a space-delimited list of graph permissions this application requires for example: User.Read User.ReadBasic.All Mail.Read
Alternatively, while in Visual Studio, you can follow these steps:
1. In the left panel, select **Settings**. 1. In the **Messaging endpoint** box, enter the URL obtained above followed by `api/messages`. This is an example: `https://botteamsauth.azurewebsites.net/api/messages`. > [!NOTE]
- > Only one messaging endpoint is allowed for a bot
+ > Only one messaging endpoint is allowed for a bot.
1. Select the **Save** button in the upper left. ## Test the bot using the Emulator
that you can use to exchange messages with the bot.
### Testing the bot locally in Teams
-Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available from the cloud using HTTPS endpoints. Therefore, to enable the bot (our sample) to work in Teams, you need to either publish the code to the cloud of your choice, or make a locally running instance externally accessible via a **tunneling** tool. We recommend [ngrok](https://ngrok.com/download), which creates an externally addressable URL for a port you open locally on your machine.
-To set up ngrok in preparation for running your Microsoft Teams app locally, follow these steps:
+Teams is an entirely cloud-based product, it requires all services it accesses to be available from the cloud using HTTPS endpoints. Therefore, to enable the bot (our sample) to work in Teams, you need to either publish the code to the cloud of your choice, or make a locally running instance externally accessible via a **tunneling** tool. We recommend [ngrok](https://ngrok.com/download), which creates an externally addressable URL for a port you open locally on your machine.
+To set up ngrok in preparation for running your Teams app locally, follow these steps:
1. In a terminal window, go the directory where you have `ngrok.exe` installed. We suggest setting the *environment variable* path to point to it. 1. Run, for example, `ngrok http 3978 --host-header=localhost:3978`. Replace the port number as needed.
This launches ngrok to listen on the port you specify. In return, it gives you a
![teams bot app auth connection string adv1](../../../assets/images/authentication/auth-bot-ngrok-start.PNG). 1. Copy the forwarding HTTPS address. It should be similar to the following: `https://dea822bf.ngrok.io/`.
-1. Append `/api/messages` to obtain `https://dea822bf.ngrok.io/api/messages`. This is the **messages endpoint** for the bot running locally on your machine and reachable over the web in a chat in Microsoft Teams.
+1. Append `/api/messages` to obtain `https://dea822bf.ngrok.io/api/messages`. This is the **messages endpoint** for the bot running locally on your machine and reachable over the web in a chat in Teams.
1. One final step to perform is to update the messages endpoint of the deployed bot. In the example, we deployed the bot in Azure. So let's perform these steps: 1. In your browser, navigate to the [**Azure portal**][azure-portal]. 1. Select your **Bot Registration**.
This launches ngrok to listen on the port you specify. In return, it gives you a
### TeamsAppManifest/manifest.json
-This manifest contains information needed by Microsoft Teams to connect with the bot:
+This manifest contains information needed by Teams to connect with the bot:
```json {
This section provides Bot authentication v3 SDK sample.
| **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | ||||-||
-| Bot authentication | This sample shows how to get started with authentication in a bot for Microsoft Teams. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/46.teams-auth) |
+| Bot authentication | This sample shows how to get started with authentication in a bot for Teams. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/46.teams-auth) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/46.teams-auth) |
| Tab, Bot and Message Extension (ME) SSO | This sample shows SSO for Tab, Bot and ME - search, action, linkunfurl. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-sso/nodejs) | Not available | ## See also
platform Auth Aad Sso Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/authentication/auth-aad-sso-bots.md
Title: Single sign-on support for bots
-description: Describes how to get a user token. Currently, a bot developer can use a sign-in card or the Azure bot service with the OAuth card support.
-keywords: token, user token, SSO support for bots, permission, Microsoft Graph, Azure AD
+description: Learn how to get a user token and a bot developer can use a sign-in card or the Azure bot service with the OAuth card support.
ms.localizationpriority: medium
platform Auth Flow Bot https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/authentication/auth-flow-bot.md
Title: Microsoft Teams Authentication flow for bots
-description: Describes Microsoft Teams authentication flow in bots with Code sample.
-keywords: teams authentication flow bots
+description: In this module, learn how to do Authentication flow for bots in Microsoft Teams and its Code sample.
ms.localizationpriority: medium
platform Bots Filesv4 https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/bots-filesv4.md
Title: Send and receive files through the bot
-description: Learn how to send and receive files through the bot using Graph APIs for personal, channel and groupchat scopes. Use Teams bot APIs using code samples based on the v4 Bot Framework SDK.
-keywords: teams bots files send receive
+description: Learn how to send and receive files through the bot using Graph APIs for personal, channel and groupchat scopes.
Last updated 05/20/2019 ms.localizationpriority: medium
platform Channel And Group Conversations https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/channel-and-group-conversations.md
Title: Channel and group conversations with a bot
-description: How to send, receive, and handle messages for a bot in a channel or group chat. Learn about design guidelines, creating conversation threads, using @mentions using Code samples
+description: Learn how to send, receive, and handle messages for a bot in a channel or group chat. Learn about design guidelines and more.
ms.localizationpriority: medium
platform Channel Messages With Rsc https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/channel-messages-with-rsc.md
Title: Receive all channel messages with RSC
-description: Receive all channel messages with RSC permissions
+description: In this module, learn how to receive all channel messages with RSC permissions and how to enable bots to receive all channel messages
ms.localizationpriority: medium
platform Conversation Basics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/conversation-basics.md
Title: Conversation basics
-description: Introduction to bot conversations in a channel, personal chat, and a group chat environment.
+description: In this module, learn bot conversations in a channel, personal chat, and a group chat environment in Teams.
ms.localizationpriority: medium
-keyword: conversations basics messages groupchap group channel
# Conversation basics
platform Conversation Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/conversation-messages.md
Title: Messages in bot conversations
-description: Describes ways to have a conversation with a Microsoft Teams bot. Learn about Teams channel data, notification to your message, picture messages, adaptive cards using Code samples.
+description: Learn the ways to have a conversation with a Teams bot and Teams channel data, notification to your message, picture messages, adaptive cards using Code samples
ms.localizationpriority: medium
-keyword: receive message send message picture message channel data adaptive cards
# Messages in bot conversations
Messages received from or sent to your bot can include different types of messag
| Format | From user to bot | From bot to user | Notes | |--|||--|
-| Rich text | Γ£ö | Γ£ö | Your bot can send rich text, pictures, and cards. Users can send rich text and pictures to your bot. |
-| Pictures | ✔ | ✔ | Maximum 1024×1024 MB and 1 MB in PNG, JPEG, or GIF format. Animated GIF isn't supported. |
-| Cards | Γ£û | Γ£ö | See the [Teams card reference](~/task-modules-and-cards/cards/cards-reference.md) for supported cards. |
-| Emojis | Γ£ö | Γ£ö | Teams currently supports emojis through UTF-16, such as U+1F600 for grinning face. |
+| Rich text | ✔️ | ✔️ | Your bot can send rich text, pictures, and cards. Users can send rich text and pictures to your bot. |
+| Pictures | ✔️ | ✔️ | Maximum 1024×1024 MB and 1 MB in PNG, JPEG, or GIF format. Animated GIF isn't supported. |
+| Cards | ❌ | ✔️ | See the [Teams card reference](~/task-modules-and-cards/cards/cards-reference.md) for supported cards. |
+| Emojis | ✔️ | ✔️ | Teams currently supports emojis through UTF-16, such as U+1F600 for grinning face. |
## Notifications to your message
Form completion message appears in Adaptive Cards while sending a response to th
You can select **Close** or switch chat to dismiss the message. If you don't want to display the success message, set the attribute `hide` to `true` in the `msTeams` `feedback` property. Following is an example:
-
+ ```json "content": { "type": "AdaptiveCard",
Form completion message appears in Adaptive Cards while sending a response to th
] } ```
-
For more information on cards and cards in bots, see [cards documentation](~/task-modules-and-cards/what-are-cards.md).
platform Request Headers Of The Bot https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/request-headers-of-the-bot.md
Title: Send tenant ID and conversation ID to the request headers of the bot
-description: Describes how to send tenant ID and conversation ID to the request headers of the bot.
+description: In this module, learn how to send tenant ID and conversation ID to the request headers of the bot in Teams.
ms.localizationpriority: medium
platform Send Proactive Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/send-proactive-messages.md
Title: Send proactive messages
-description: Learn how to send proactive messages with your Microsoft Teams bot, proactively install your app using Microsoft Graph and check the code samples based on Bot Framework SDK v4.
+description: Learn how to send proactive messages with your Teams bot, install your app using Microsoft Graph and check code samples based on Bot Framework SDK v4
ms.localizationpriority: high
-Keywords: send a message get user ID channel ID conversation ID
# Proactive messages
platform Create A Bot Commands Menu https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/create-a-bot-commands-menu.md
Title: Create a command menu for your bot
-description: Learn how to create a command menu for your Microsoft Teams bot with Code samples.
+description: In this module, learn how to create and handle a command menu for your Microsoft Teams bot with Code samples.
ms.localizationpriority: medium
-keywords: command menu compose message conversation @mention
# Bot command menus
A prerequisite to create a command menu for your bot is that you must edit an ex
1. Open Teams and select **Apps** from the left pane. In the **Apps** page, search for **App Studio**, and select **Open**. > [!WARNING]
- > If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio will be deprecated by June 30, 2022
+ > If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio will be deprecated by June 30, 2022.
:::image type="content" source="conversations/Media/AppStudio.png" alt-text="appstudio-media":::
-2. In **App Studio**, select the **Manifest editor** tab. If you do not have an existing app package, you can create or import an existing app. For more information, see [update C# app package in App Studio](../../get-started/deploy-csharp-app-studio.md)
+2. In **App Studio**, select the **Manifest editor** tab. If you do not have an existing app package, you can create or import an existing app. For more information, see [update C# app package in App Studio](../../get-started/deploy-csharp-app-studio.md).
3. In the left pane of the **Manifest editor** and in the **Capabilities** section, select **Bots**.
A prerequisite to create a command menu for your bot is that you must edit an ex
:::image type="content" source="media/AppStudio-NewCommandMenu.png" alt-text="App Studio new commands menu button "lightbox="media/AppStudio-NewCommandMenu.png "border="true"::: - ### Create a command menu for your bot by editing Manifest.json Another way to create a command menu is to create it directly in the manifest file while developing your bot source code. To use this method, follow these points:
platform Locally With An Ide https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/debug/locally-with-an-ide.md
Title: Test and debug your bot locally
-description: Learn about testing and debugging your bot locally with an IDE within Teams environment via sideloading, outside Teams using Bot emulator, and by talking directly to your bot.
+description: Learn about testing and debugging your bot locally with an IDE within Teams environment via sideloading and more
ms.localizationpriority: medium
For more information, see [complete instructions on the Bot Framework Emulator](
> [!Important] > Talking to your bot by ID is intended for basic testing purposes only. Any Teams-specific functionality you have added to your bot fails to work.
-Initiate a conversation with your bot by using its ID. When a bot is added through one of these methods, it isn't addressable in channel conversations and you can't take advantage of other Microsoft Teams app capabilities like tabs or message extensions. Initiate a conversation in one of the following ways:
+Initiate a conversation with your bot by using its ID. When a bot is added through one of these methods, it isn't addressable in channel conversations and you can't take advantage of other Teams app capabilities like tabs or message extensions. Initiate a conversation in one of the following ways:
-* On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Channels**, select **Add to Microsoft Teams**. Microsoft Teams launches a personal chat with your bot.
+* On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Channels**, select **Add to Microsoft Teams**. Teams launches a personal chat with your bot.
-* Directly reference your bot's app ID from within Microsoft Teams:
+* Directly reference your bot's app ID from within Teams:
1. On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Details**, copy the **Microsoft App ID** for your bot. ![Getting the AppID for the bot](~/assets/images/bots_appid_botframework.png)
Initiate a conversation with your bot by using its ID. When a bot is added throu
The app ID must resolve to your bot name. 3. Select your bot and send a message to initiate a conversation.
- Alternatively, you can paste your bot's app ID in the search box in the top left in Microsoft Teams. In the search results page, go to the **People** tab to see your bot and to start chatting with it.
+ Alternatively, you can paste your bot's app ID in the search box in the top left in Teams. In the search results page, go to the **People** tab to see your bot and to start chatting with it.
> [!Note]
-> For Microsoft Teams to refer to your bot's app ID, enable [sideloading of apps](/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant#enable-custom-teams-apps-and-turn-on-custom-app-uploading).
+> For Teams to refer to your bot's app ID, enable [sideloading of apps](/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant#enable-custom-teams-apps-and-turn-on-custom-app-uploading).
Your bot receives the `conversationUpdate` event as you add the bots to a team, without the team information in the `channelData` object.
platform Format Your Bot Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/format-your-bot-messages.md
Title: Format your bot messages
-description: Add rich formatting to your bot messages, such as strikethrough, ordered and unordered list, hyperlink, image link, and more.
+description: In this module, learn how to add rich formatting to your bot messages, such as strikethrough, ordered and unordered list, hyperlink, image link, and more.
ms.localizationpriority: medium
Currently, the following limitations apply to formatting:
* Rich cards support formatting in the text property only, not in the title or subtitle properties. * Rich cards do not support markdown or table formatting.
-After you format text content, ensure that your formatting works across all platforms supported by Microsoft Teams.
+After you format text content, ensure that your formatting works across all platforms supported by Teams.
## Cross-platform support
Some styles are currently not supported across all platforms. The following tabl
| Style | Text-only messages | Rich cards - XML only | | | :: | :: |
-| Bold | Γ£ö | Γ£û |
-| Italic | Γ£ö | Γ£ö |
-| Header (levels 1&ndash;3) | Γ£û | Γ£ö |
-| Strikethrough | Γ£û | Γ£ö |
-| Horizontal rule | Γ£û | Γ£û |
-| Unordered list | Γ£û | Γ£ö |
-| Ordered list | Γ£û | Γ£ö |
-| Preformatted text | Γ£ö | Γ£ö |
-| Blockquote | Γ£ö | Γ£ö |
-| Hyperlink | Γ£ö | Γ£ö |
-| Image link | Γ£ö | Γ£û |
+| Bold | ✔️️ | ❌ |
+| Italic | ✔️ | ✔️ |
+| Header (levels 1&ndash;3) | ❌ | ✔️ |
+| Strikethrough | ❌ | ✔️ |
+| Horizontal rule | ❌ | ❌ |
+| Unordered list | ❌ | ✔️ |
+| Ordered list | ❌ | ✔️ |
+| Preformatted text | ✔️ | ✔️ |
+| Blockquote | ✔️ | ✔️ |
+| Hyperlink | ✔️ | ✔️ |
+| Image link | ✔️ | ❌ |
After checking cross-platform support, ensure that support by individual platforms is also available.
The following table provides a list of styles, which are supported on desktop, i
| Style | Desktop | iOS | Android | | | :: | :: | :: |
-| Bold | Γ£ö | Γ£ö | Γ£ö |
-| Italic | Γ£ö | Γ£ö | Γ£ö |
-| Header (levels 1&ndash;3) | Γ£û | Γ£û | Γ£û |
-| Strikethrough | Γ£ö | Γ£ö | Γ£û |
-| Horizontal rule | Γ£û | Γ£û | Γ£û |
-| Unordered list | Γ£ö | Γ£û | Γ£û |
-| Ordered list | Γ£ö | Γ£û | Γ£û |
-| Preformatted text | Γ£ö | Γ£ö | Γ£ö |
-| Blockquote | Γ£ö | Γ£ö | Γ£ö |
-| Hyperlink | Γ£ö | Γ£ö | Γ£ö |
-| Image link | Γ£ö | Γ£ö | Γ£ö |
+| Bold | ✔️ | ✔️ | ✔️ |
+| Italic | ✔️ | ✔️ | ✔️ |
+| Header (levels 1&ndash;3) | ❌ | ❌ | ❌ |
+| Strikethrough | ✔️ | ✔️ | ❌ |
+| Horizontal rule | ❌ | ❌ | ❌ |
+| Unordered list | ✔️ | ❌ | ❌ |
+| Ordered list | ✔️ | ❌ | ❌ |
+| Preformatted text | ✔️ | ✔️ | ✔️ |
+| Blockquote | ✔️ | ✔️ | ✔️ |
+| Hyperlink | ✔️ | ✔️ | ✔️ |
+| Image link | ✔️ | ✔️ | ✔️ |
### Cards
platform Get Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/get-teams-context.md
Title: Get Teams specific context for your bot
-description: How to get Microsoft Team's specific context for your bot, including the conversation roster, single member or team's details, channel list, code samples.
+description: Learn how to get Teams specific context for your bot, including the conversation roster, single member or team's details, channel list, code samples.
ms.localizationpriority: high
-keywords: bot context roster user profile channel list
# Get Teams specific context for your bot
Response body
* * *
-After you get details of a single member, you can get details of the team. Currently, to retrieve information for a team, use the Microsoft Teams bot APIs `TeamsInfo.GetMemberDetailsAsync` for C# or `TeamsInfo.getTeamDetails` for TypeScript.
+After you get details of a single member, you can get details of the team. Currently, to retrieve information for a team, use the Teams bot APIs `TeamsInfo.GetMemberDetailsAsync` for C# or `TeamsInfo.getTeamDetails` for TypeScript.
## Get team's details
Response body
* * *
-After you get details of the team, you can get the list of channels in a team. Currently, to retrieve information for a list of channels in a team, use the Microsoft Teams bot APIs `TeamsInfo.GetTeamChannelsAsync` for C# or `TeamsInfo.getTeamChannels` for TypeScript APIs.
+After you get details of the team, you can get the list of channels in a team. Currently, to retrieve information for a list of channels in a team, use the Teams bot APIs `TeamsInfo.GetTeamChannelsAsync` for C# or `TeamsInfo.getTeamChannels` for TypeScript APIs.
## Get the list of channels in a team
platform Rate Limit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/rate-limit.md
Title: Optimize your bot with rate limiting in Teams
-description: Learn about handling rate limit for bots with Per bot per thread limit and per limit for all bots using Code examples. Additionally, learn rate limiting best practices in Microsoft Teams.
+description: Learn about handling rate limit for bots with Per bot per thread limit and per limit for all bots using Code examples
ms.localizationpriority: medium
-keywords: teams bots rate limiting
# Optimize your bot with rate limiting in Teams
platform What Are Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/what-are-bots.md
Title: Bots in Microsoft Teams
-description: An overview of bots in Microsoft Teams.
+description: With this learning path, get started with conversational bots in Microsoft Teams and it's code samples.
ms.localizationpriority: high
A bot is also referred to as a chatbot or conversational bot. It is an app that
> [!IMPORTANT] > Currently, bots are available in Government Community Cloud (GCC) and GCC-High but not in Department of Defense (DOD).
->
+>
> Bot applications within Microsoft Teams are available in GCC-High through [Azure bot Service](/azure/bot-service/channel-connect-teams). Conversational bots allow users to interact with your web service using text, interactive cards, and task modules.
Your bot requires contextual information, such as user profile details to access
You can send and receive files through the bot using Graph APIs or Teams bot APIs. See [send and receive files through the bot](~/bots/how-to/bots-filesv4.md).
-Rate limiting is used to optimize bots used for your Teams application. To protect Microsoft Teams and its users, the bot APIs provide a rate limit for incoming requests. See [optimize your bot with rate limiting in Teams](~/bots/how-to/rate-limit.md).
+Rate limiting is used to optimize bots used for your Teams application. To protect Teams and its users, the bot APIs provide a rate limit for incoming requests. See [optimize your bot with rate limiting in Teams](~/bots/how-to/rate-limit.md).
-With Microsoft Graph APIs for calls and online meetings, Microsoft Teams apps can now interact with users using voice and video. See [calls and meetings bots](~/bots/calls-and-meetings/calls-meetings-bots-overview.md).
+With Microsoft Graph APIs for calls and online meetings, Teams apps can now interact with users using voice and video. See [calls and meetings bots](~/bots/calls-and-meetings/calls-meetings-bots-overview.md).
You can use the Teams bot APIs to get information for members of a chat or team. See [changes to Teams bot APIs for fetching team or chat members](~/resources/team-chat-member-api-changes.md).
platform App Fundamentals Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/app-fundamentals-overview.md
description: Introduce the elements of planning an app, understanding use cases,
ms.localizationpriority: high
-keywords: entry points extensibility use cases device capability
# Plan your app with Teams features
At its heart, Teams is a collaboration platform. It's also a social platform, is
In this section, learn how to:
-* Identify and map use cases to Teams features
-* Use planning checklist
-* Plan beyond app deployment
+* Identify and map use cases to Teams features.
+* Use planning checklist.
+* Plan beyond app deployment.
## Plan with Teams
The following table includes Teams features and availability for GCC, GCC-High,
| Sideloading apps | ✔️ | ❌ | ❌ | | Custom connectors | ❌ | ❌ | ❌ |
-****Compliance UI***: By enabling third-party communications, customers accept that such communication is being processed through the third party and not Microsoft. The customer is solely responsible for mitigating risks associated with connecting with third party bots in their services. Microsoft does not endorse and makes no warranties, express, or implied concerning the security of third parties the customer allows to connect with their service. Enabling bots will extend your system boundary beyond this tenant based on the bot you choose to leverage. It is your responsibility to ensure that this meets your compliance requirements including FedRAMP, DFARS, ITAR, etc. It is your responsibility to evaluate the risk and compliance of any endpoint and URL that you connect to.
+****Compliance UI***: By enabling third-party communications, customers accept that such communication is being processed through the third party and not Microsoft. The customer is solely responsible for mitigating risks associated with connecting with third party bots in their services. Microsoft doesn't endorse and makes no warranties, express, or implied concerning the security of third parties the customer allows to connect with their service. Enabling bots will extend your system boundary beyond this tenant based on the bot you choose to leverage. It is your responsibility to ensure that this meets your compliance requirements including FedRAMP, DFARS, ITAR, etc. It is your responsibility to evaluate the risk and compliance of any endpoint and URL that you connect to.
The following list helps to identify the availability of GCC, GCC-High, and DOD for the features:
platform Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/authentication/authentication.md
Title: Authenticating app users
-description: Describes authentication in Teams and how to use it in the apps
+description: In this module, learn authentication in Teams and how to use it in the apps, web based authentication flow and OAuthPrompt flow for conversational bots
ms.localizationpriority: medium
-keywords: teams authentication OAuth SSO Microsoft Azure Active Directory (Azure AD)
# Authenticate users in Microsoft Teams
platform Configure Identity Provider https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/authentication/configure-identity-provider.md
Title: Configure OAuth 2.0 identity providers
-description: Describes how to configure identity providers with a focus on Microsoft Azure Active Directory (Azure AD)
+description: In this module, learn how to configure identity providers with a focus on Microsoft Azure Active Directory (Azure AD)
ms.localizationpriority: medium
-keywords: teams authentication Azure AD oauth identity provider
# Configure identity providers
platform App Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/app-studio-overview.md
Title: Get started with App Studio for Microsoft Teams
-description: Get started building great apps in Microsoft Teams using App Studio
-keywords: getting started app studio teams
+description: In this article, you'll learn how to build, and manage your apps with app studio for Microsoft Teams and installing app studio.
ms.localizationpriority: medium
App Studio makes it easy to start creating or integrating your own Microsoft Tea
## Installing App Studio
-App Studio is a Teams app which can be found in the Teams store. Follow this link for direct download [App Studio](https://aka.ms/InstallTeamsAppStudio). You can also find the app in the app store.
+App Studio is a Teams app, which can be found in the Teams store. Follow this link for direct download [App Studio](https://aka.ms/InstallTeamsAppStudio). You can also find the app in the app store.
In the store, search for App Studio.
Select **install**.
![app studio](~/assets/images/get-started/teamsappstudio.png)
-Once you are in App Studio, click on the **Manifest editor** tab where you can either import an existing app or create a new app.
+Once you are in App Studio, select on the **Manifest editor** tab where you can either import an existing app or create a new app.
## App Studio Features
This is where you can see what [cards you create in App Studio](#card-editor) lo
### Manifest Editor
-As mentioned earlier, the most significant part of a Microsoft Teams app package is its manifest.json file. This file, which must conform to the [Teams App schema](~/resources/schem), contains metadata which allows Teams to correctly present your app to users.
+As mentioned earlier, the most significant part of a Teams app package is its manifest.json file. This file, which must conform to the [Teams App schema](~/resources/schem), contains metadata, which allows Teams to correctly present your app to users.
-The Manifest Editor tab in App Studio simplifies creating the manifest, allowing you to describe the app, upload your icons, add app capabilities, and produce a .zip file which can easily be uploaded into Teams for testing or distributed for others to use. Note that App Studio does not produce functional code for your app, or host your app. Your app must already be hosted and running at the URL listed in the manifest for the app upload process to result in a working app.
+The Manifest Editor tab in App Studio simplifies creating the manifest, allowing you to describe the app, upload your icons, add app capabilities, and produce a .zip file, which can easily be uploaded into Teams for testing or distributed for others to use. App Studio doesn't produce functional code for your app, or host your app. Your app must already be hosted and running at the URL listed in the manifest for the app upload process to result in a working app.
#### Details
-The details section of the Manifest Editor defines the high-level description of the app you are making. This includes things such as the appΓÇÖs name, description, and visual branding. You can automatically generate a GUID for your app and provide URLs for your privacy statement and terms of use.
+The details section of the Manifest Editor defines the high-level description of the app you're making. This includes things such as the appΓÇÖs name, description, and visual branding. You can automatically generate a GUID for your app and provide URLs for your privacy statement and terms of use.
#### Capabilities
The capabilities section of the Manifest Editor is where the app's capabilities
##### Tabs
-* **Team Tabs.** A team tab becomes part of a channel and provides quick access to team information and resources. For example, the Planner tab for a channel contains a single plan; the Power BI tab maps to a specific report. Users can drill down to the relevant context, but they should not be able to navigate outside the tab. The Power BI tab, for instance, doesn't enable navigation to other Power BI reports, but it does enable the *Go to website* button that launches the report in the main Power BI website.
+* **Team Tabs.** A team tab becomes part of a channel and provides quick access to team information and resources. For example, the Planner tab for a channel contains a single plan; the Power BI tab maps to a specific report. Users can drill down to the relevant context, but they shouldn't be able to navigate outside the tab. The Power BI tab, for instance, doesn't enable navigation to other Power BI reports, but it does enable the *Go to website* button that launches the report in the main Power BI website.
For team tabs, you must provide a *Configuration URL* to present options and gather information so users can customize the content and experience of your tab. This iframed HTML page is displayed when a user first adds the tab to a channel. You must also provide any additional domains that the tab expects to load from or link to.
-* **Personal Tabs.** This section lets you define a set of tabs that are presented by default in the personal app experience (experience a user has with your app outside the context of a team or channel). In this section, provide the tab name, a unique identifier, the URL that points to the UI to be displayed in Teams, and optionally, the URL to use if a user opts to view the tab in a browser. With Teams tabs, provide any additional domains from which the tab expects to load from or link to.
+* **Personal Tabs.** You can define a set of tabs that are presented by default in the personal app experience (experience a user has with your app outside the context of a team or channel). In this section, provide the tab name, a unique identifier, the URL that points to the UI to be displayed in Teams, and optionally, the URL to use if a user opts to view the tab in a browser. With Teams tabs, provide any additional domains from which the tab expects to load from or link to.
##### Bots
-This section allows you to add a [conversational bot](~/bots/what-are-bots.md) to your app. If you already have a bot registered with Bot Framework, you can add that bot by clicking *Set Up* and supplying the bot's name, Bot Framework ID, and defining the scopes in which the bot will work.
+This section allows you to add a [conversational bot](~/bots/what-are-bots.md) to your app. If you already have a bot registered with Bot Framework, you can add that bot by clicking *Set Up* and supplying the bot's name, Bot Framework ID, and defining the scopes in which the bot works.
-If you have not yet registered a bot with the Bot Framework, click **Register** to create a new one. Once youΓÇÖre done registering your bot, come back to this section of the Manifest Editor to enter its name and Bot Framework ID.
+If you haven't yet registered a bot with the Bot Framework, select **Register** to create a new one. Once youΓÇÖre done registering your bot, come back to this section of the Manifest Editor to enter its name and Bot Framework ID.
-After you have supplied your bot's information, you can now optionally define a list of commands that your bot can suggest to users. Add the name of the command, a description of the command which indicates its syntax and arguments, and the scope(s) to which this command should apply.
+After you've supplied your bot's information, you can now optionally define a list of commands that your bot can suggest to users. Add the name of the command, a description of the command, which indicates its syntax and arguments, and the scope(s) to which this command should apply.
> [!NOTE] > If you have defined your bot to only support one scope, the commands specified for the unsupported scope is ignored. You can edit the scopes your bot supports at any time. ##### Connectors
-This section allows you to add a connector to your app. If you already have registered an Office 365 connector, choose **Set up** and enter the name and ID of the connector. If you want a new connector click **Register** to be taken to the Connector Developer Dashboard in your browser.
+This section allows you to add a connector to your app. If you already have registered an Office 365 connector, choose **Set up** and enter the name and ID of the connector. If you want a new connector select **Register** to be taken to the Connector Developer Dashboard in your browser.
##### Message Extensions
-[Message extensions](~/messaging-extensions/what-are-messaging-extensions.md) are a powerful way for users to engage with your app within Microsoft Teams. Users can query for information from your service and post that information in the form of cards, right into the channel or chat conversation.
+[Message extensions](~/messaging-extensions/what-are-messaging-extensions.md) are a powerful way for users to engage with your app within Teams. Users can query for information from your service and post that information in the form of cards, right into the channel or chat conversation.
-Message extensions are powered by Bot Framework bots, so they require a configured bot to operate. If you have the name and Bot Framework ID of the bot you would like to power the message extension, enter it. Otherwise, click **Register** to create one and enter the information afterward. Select whether the configuration of a message extension can be updated by the user.
+Message extensions are powered by Bot Framework bots, so they require a configured bot to operate. If you have the name and Bot Framework ID of the bot you would like to power the message extension, enter it. Otherwise, select **Register** to create one and enter the information afterward. Select whether the configuration of a message extension can be updated by the user.
-Once you have the underlying bot configured, define the commands and parameters which the message extension can accept.
+Once you have the underlying bot configured, define the commands and parameters, which the message extension can accept.
Each command requires a title and an ID. The command can optionally contain a description for the user. Each command can support up to five parameters, each of which requires:
Each command requires a title and an ID. The command can optionally contain a de
#### Test and Distribute
-Once you have finished defining your application, the Test and Distribute section allows you export your appΓÇÖs definition as a zip file which then can be shared and uploaded into the Teams client for testing. Clicking export downloads the zip file as *appname.zip* in your default download directory.
+Once you have finished defining your application, the Test and Distribute section allows you export your appΓÇÖs definition as a zip file, which then can be shared and uploaded into the Teams client for testing. Clicking export downloads the zip file as *appname.zip* in your default download directory.
##### Publish your app to Teams
-On your project home page, you can upload your app to a team, submit your app to your company custom app store for users in your organization, or submit your app to App Source for all Teams users. Your IT admin will review these submissions. You can return to the *Publish* page to check on your submission status and learn if your app was approved or rejected by your IT admin. This is also where you'll come to submit updates to your app or cancel any currently active submissions.
+On your project home page, you can upload your app to a team, submit your app to your company custom app store for users in your organization, or submit your app to App Source for all Teams users. Your IT admin reviews these submissions. You can return to the *Publish* page to check on your submission status and learn if your app was approved or rejected by your IT admin. This is also where you'll come to submit updates to your app or cancel any currently active submissions.
### Card Editor
-A card is a container for short or related pieces of information. Microsoft Teams supports cards, which can have multiple properties and attachments. Cards are a key way that bots and connectors relay actionable information to users.
+A card is a container for short or related pieces of information. Teams supports cards, which can have multiple properties and attachments. Cards are a key way that bots and connectors relay actionable information to users.
To make this process easier and less error-prone, the Card Editor tab lets you build Hero Cards or Thumbnail Cards using a form and verify and test the resulting card (exactly as a user would see it) through a bot. It also provides the corresponding JSON, C#, or Node.js code for the card that you can copy/paste into your app's source code.
If you already have a card that you would like to verify inside Teams, you can p
>[!Note] > This React control library is deprecated in the future. Consider using the [Fluent-UI react controls as an alternative](https://microsoft.github.io/fluent-ui-react/) previously Stardust UI.
-Creating an app that follows the Teams best practices is a great way to give your app a look and feel that fits seamlessly with the Teams client experience. The UI controls that you use are critical to achieving that end. To make it easier to create a consistent UI, App Studio provides several categories of UI controls which follow Teams design principles.
+Creating an app that follows the Teams best practices is a great way to give your app a look and feel that fits seamlessly with the Teams client experience. The UI controls that you use are critical to achieving that end. To make it easier to create a consistent UI, App Studio provides several categories of UI controls, which follow Teams design principles.
Examples of the controls and corresponding React components are provided and ready to use in building your app.
platform Apps Localization https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/apps-localization.md
If you provide localized versions of your application, the users respond with th
| Sample name | Description | .NET | Node.js | |-|-|||
-| App Localization | Microsoft Teams app localization using bot and tab. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-localization/csharp) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-localization/nodejs) |
+| App Localization | Teams app localization using bot and tab. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-localization/csharp) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/app-localization/nodejs) |
## See also
platform Debug https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/debug.md
Title: Choosing a setup to test and debug your app
-description: Describes options for testing and debugging Microsoft Teams apps in local and cloud-hosted environment.
-keywords: teams run debug apps local cloud-hosted host
+description: In this module, learn options for testing and debugging Microsoft Teams apps in local and cloud-hosted environment.
ms.localizationpriority: medium
Use multiple manifests and packages to maintain separation between production an
## Purely local > [!NOTE]
-> Running the bot locally does not give you access to Teams app functionality or Teams-specific bot functions like roster calls and other channel-specific functionality. In addition, some capabilities are permitted by the Bot Framework in the Bot Emulator that might not function when running in Microsoft Teams.
+> Running the bot locally does not give you access to Teams app functionality or Teams-specific bot functions like roster calls and other channel-specific functionality. In addition, some capabilities are permitted by the Bot Framework in the Bot Emulator that might not function when running in Teams.
Your bot can run within the Bot Emulator. This enables you to test some of the core logic of the bot, see a rough layout of messages, and perform simple tests. Following are the steps:
Your bot can run within the Bot Emulator. This enables you to test some of the c
## Locally hosted
-Microsoft Teams is an entirely cloud-based product, it requires all services it accesses to be available publicly using HTTPS endpoints. Therefore, to enable your app to work within Teams, you need to either publish the code to the cloud of your choice or make our local running instance externally accessible. We can do the latter with tunneling software.
+Teams is an entirely cloud-based product, it requires all services it accesses to be available publicly using HTTPS endpoints. Therefore, to enable your app to work within Teams, you need to either publish the code to the cloud of your choice or make our local running instance externally accessible. We can do the latter with tunneling software.
Although you can use any tool of your choice, we use and recommend [ngrok](https://ngrok.com/download), which creates an externally addressable URL for a port you open locally on your machine.
-To set up ngrok in preparation to execute your Microsoft Teams app locally, follow these steps:
+To set up ngrok in preparation to execute your Teams app locally, follow these steps:
1. Go to the directory where you have ngrok.exe installed in a terminal application. You may want to add it as a path variable to avoid this step. 2. Run, for example, `ngrok http 3978 --host-header=localhost:3978`, or replace the port number as needed.
To use ngrok in your project based on the capabilities you're using, you must re
For bots registered in the Microsoft Bot Framework, update the bot's messaging endpoint to use this new ngrok endpoint. For example, `https://2d1224fb.ngrok.io/api/messages`. You can validate that ngrok is working by testing the bot response in the Bot Framework portal's Test chat window. Again, like the emulator, this test doesn't permit you to access Teams-specific functionality. > [!NOTE]
+>
> * To update the messaging endpoint for a bot, you must use the Bot Framework. Select your bot in [your list of bots in Bot Framework](https://dev.botframework.com/bots). You do not need to migrate your bot to Microsoft Azure. You can also update your messaging endpoint through [App Studio](~/concepts/build-and-test/app-studio-overview.md). > [!WARNING]
-> * If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio will be deprecated by June 30, 2022
+>
+> * If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio will be deprecated by June 30, 2022.
## Cloud-hosted
-You can use any externally addressable service to host your development and production code and their HTTPS endpoints. There's no expectation that your capabilities reside on the same service. We require all domains to be accessed from your Microsoft Teams apps listed in the [`validDomains`](~/resources/schem#validdomains) object in the `manifest.json` file.
+You can use any externally addressable service to host your development and production code and their HTTPS endpoints. There's no expectation that your capabilities reside on the same service. We require all domains to be accessed from your Teams apps listed in the [`validDomains`](~/resources/schem#validdomains) object in the `manifest.json` file.
> [!NOTE] > To ensure a secure environment, be explicit about the exact domain and subdomains you reference and those domains must be in your control. For example, `*.azurewebsites.net` is not recommended, however `contoso.azurewebsites.net` is recommended. ## Load and run your experience
-To load and run your experience within Microsoft Teams, you need to create a package and upload it into Teams. For more information, see:
+To load and run your experience within Teams, you need to create a package and upload it into Teams. For more information, see:
* [Create the package for your Microsoft Teams app](~/concepts/build-and-test/apps-package.md). * [Upload your app in Microsoft Teams](~/concepts/deploy-and-publish/apps-upload.md).
platform Deep Links https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/deep-links.md
Alternatively, you can also generate deep links programmatically, using the form
### Consume a deep link from a tab
-When navigating to a deep link, Microsoft Teams simply navigates to the tab and provides a mechanism through the Microsoft Teams JavaScript library to retrieve the sub-page ID if it exists.
+When navigating to a deep link, Microsoft Teams simply navigates to the tab and provides a mechanism through the Teams JavaScript library to retrieve the sub-page ID if it exists.
The [`app.getContext()`](/javascript/api/@microsoft/teams-js/app?view=msteams-client-js-latest#@microsoft-teams-js-app-getcontext&preserve-view=true) call (`microsoftTeams.getContext()`) in TeamsJS v1) returns a promise that will resolve with the context that includes the `subPageId` property (subEntityId for TeamsJS v1) if the tab is navigated through a deep link. For more information, see [PageInfo interface](/javascript/api/@microsoft/teams-js/app?view=msteams-client-js-latest#@microsoft-teams-js-app-pageinfo&preserve-view=true).
Use the following format for a deep link that you can use in a bot, connector, o
`https://teams.microsoft.com/l/entity/<appId>/<entityId>?webUrl=<entityWebUrl>&label=<entityLabel>&context=<context>` > [!NOTE]
-> If the bot sends a message containing a `TextBlock` with a deep link, then a new browser tab is opened when the user selects the link. This happens in Chrome and in the Microsoft Teams desktop app, both running on Linux.
+> If the bot sends a message containing a `TextBlock` with a deep link, then a new browser tab is opened when the user selects the link. This happens in Chrome and in the Teams desktop app, both running on Linux.
> If the bot sends the same deep link URL into an `Action.OpenUrl`, then the Teams tab is opened in the current browser tab when the user selects the link. A new browser tab isn't opened. <! TBD: Edit this article.
Following are the query parameters:
| Sample name | Description | C# |Node.js| |-|-||-|
-|Deep Link consuming Subentity ID |Microsoft Teams sample app for demonstrating deep link from bot chat to tab consuming Subentity ID.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-deeplink/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-deeplink/nodejs)|
+|Deep Link consuming Subentity ID | Teams sample app for demonstrating deep link from bot chat to tab consuming Subentity ID.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-deeplink/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-deeplink/nodejs)|
## See also
platform Prepare Your O365 Tenant https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/prepare-your-o365-tenant.md
Title: Prepare your Microsoft 365 tenant
-description: How to get started with Teams in Microsoft 365
+description: In this module, learn how to get started with Teams in Microsoft 365 and create your development environment
ms.localizationpriority: medium
-keywords: Configure Microsoft 365 tenant Teams uploading
# Prepare your Microsoft 365 tenant
platform Share To Teams From Web Apps https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/share-to-teams-from-web-apps.md
This article guides you on how to create and embed a Share to Teams button for y
</div> ```
- After completing this, the Microsoft Teams icon gets added to your website. The following image shows the Share to Teams icon:
+ After completing this, the Teams icon gets added to your website. The following image shows the Share to Teams icon:
:::image type="content" source="~/assets/icons/share-to-teams-icon.png" alt-text="Share to Teams icon" border="true":::
platform Teams Developer Portal https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/teams-developer-portal.md
Title: Manage your apps with the Developer Portal
-description: Learn how to configure, distribute, and manage your apps using the Developer Portal for Microsoft Teams.
-keywords: getting started developer portal teams
+description: In this module, learn how to configure, distribute, and manage your apps using the Developer Portal for Microsoft Teams.
ms.localizationpriority: medium
The <a href="https://dev.teams.microsoft.com" target="_blank">Developer Portal f
The Developer Portal provides a couple ways to register a Teams app:
-* Register a brand new app
-* Import an existing app package
+* Register a brand new app.
+* Import an existing app package.
> [!NOTE] > If you create an app using the [Microsoft Teams Toolkit for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension), you can manage that app in the Developer Portal.
platform Test App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/test-app-overview.md
Title: Test your app overview
-description: Describes the process to test and debug your Teams custom app in Microsoft 365
+description: In this module, learn the process to test and debug your Teams custom app in Microsoft 365 and add test data to your Microsoft 365 tenant
ms.localizationpriority: medium
-keywords: Configure Microsoft 365 tenant Teams uploading test app
# Test your app
platform Test Data https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/test-data.md
Title: Add test data to your Microsoft 365 test tenant
-description: Set up your Office 365 developer program subscription for successful testing of Microsoft Teams Apps using code snippets
+description: Learn to set up your Office 365 developer program subscription for successful testing of Microsoft Teams Apps using code snippets
ms.localizationpriority: medium
-keywords: testing apps developer program teams
Last updated 11/01/2019
platform Apps Publish Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/apps-publish-overview.md
You configure default install options. For example, if your app's primary capabi
## Create your app package
-To distribute your Microsoft Teams app, you must have a valid app package. An app package is a zip file that contains an **app manifest** and **app icons**.
+To distribute your Teams app, you must have a valid app package. An app package is a zip file that contains an **app manifest** and **app icons**.
## Upload your app in Teams
platform App Structure https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/app-structure.md
Title: Design your app - Understand the app structure
-description: Understand what you can and can't customize in Microsoft Teams when designing your app.
+description: In this module, learn what you can and can't customize in Microsoft Teams when designing your app structure.
ms.localizationpriority: medium
-keywords: wireframe channel chat meeting message extensions mobile desktop
# Understand the Microsoft Teams app structure
platform Design Teams App Advanced Ui Components https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
A toolbar is a container for grouping a set of controls.
### Top use cases
-* Contextual actions on app content
-* Contextual filter and find
-* Navigation and breadcrumbs
+* Contextual actions on app content.
+* Contextual filter and find.
+* Navigation and breadcrumbs.
### Mobile
platform Design Teams App Basic Ui Components https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
description: Learn the UI components used to build Microsoft Teams apps and get
ms.localizationpriority: medium - # Designing your Microsoft Teams app with basic Fluent UI components
The illustrations on this page show how components look in Teams default (light)
Based on <a href="https://fluentsite.z22.web.core.windows.net/" target="_blank">Fluent UI</a>, the Microsoft Teams UI Kit includes components and patterns that are designed specifically for building Teams apps. In the UI kit, you can grab and insert the components listed here directly into your design and see more examples of how to use each component. > [!div class="nextstepaction"]
-> [Get the Microsoft Teams UI Kit (Figma)](https://www.figma.com/community/file/916836509871353159)
+> [Get the Microsoft Teams UI Kit (Figma)](https://www.figma.com/community/file/916836509871353159).
## Alert
platform Design Teams App Fundamentals https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-fundamentals.md
ms.localizationpriority: medium
-keywords: layout grid avatars icons segoe ui typography
# Microsoft Teams app design system
platform Design Teams App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-overview.md
Title: Designing your custom app
-description: Learn how to design Microsoft Teams apps. Resources include the Microsoft Teams UI Kit, best practices, examples, and more.
+description: Learn how to design Microsoft Teams apps and resources include the Microsoft Teams UI Kit, best practices, examples, and more.
ms.localizationpriority: medium
platform Design Teams App Process https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-process.md
Title: App design process
-description: Get a general idea of how and when you might use Microsoft tools and resources to design an effective Microsoft Teams app.
+description: Learn how and when you might use Microsoft tools and resources to design an effective Microsoft Teams app.
ms.localizationpriority: mediums
platform Design Teams App Ui Templates https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/design-teams-app-ui-templates.md
Title: Designing your app with UI templates
-description: Design your app faster with standardized UI components, layouts, and patterns commonly seen across Microsoft Teams.
+description: Learn to design your app faster with standardized UI components, layouts, and patterns commonly seen across Microsoft Teams.
ms.localizationpriority: medium
A task board, sometimes called a kanban board or swim lanes, is a collection of
### Top use cases
-* Project management. Assigning tasks and tracking status
-* Brainstorming. Adding ideas in different categories
-* Sorting exercises. Organizing any kind of information into buckets
+* Project management. Assigning tasks and tracking status.
+* Brainstorming. Adding ideas in different categories.
+* Sorting exercises. Organizing any kind of information into buckets.
### Mobile
platform Enable App Customization https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/enable-app-customization.md
Title: Customize your Teams app
-description: Understand how Teams admins can customize your app for their org.
+description: In this module, understand how Teams admins can customize your Teams app for their org and hide Teams app until admin approves.
ms.localizationpriority: medium
-keywords: accent color brand hide app approval
# Customize your Teams app
platform Personal Apps https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/personal-apps.md
ms.localizationpriority: medium
-keywords: ui kit personal app webview navigation bot tab iframe dashboard form template
# Designing your personal app for Microsoft Teams
platform Plan Responsive Tabs For Teams Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/plan-responsive-tabs-for-teams-mobile.md
Title: Plan for Teams mobile
-description: Guide to plan for creating an app on Teams mobile
+description: With this learning module, you'll learn how to plan for creating an app on Teams mobile and understand different stages to build app.
ms.localizationpriority: medium
In the first stage, you can implement the most basic consumption experience, to
You can show the following information:
-* Dashboards and summaries
-* Data visuals, maps, and infographics
-* Charts, graphs, and tables
+* Dashboards and summaries.
+* Data visuals, maps, and infographics.
+* Charts, graphs, and tables.
![Dashboarding and data visualization apps consumption](../../assets/images/app-fundamentals/dashboarding-and-data-visualization-apps-consumption.png)
Quick actions:
In the second stage, the users can work on the existing charts and visuals from desktop experience. You can introduce the following actions:
-* Search content
-* Filter data
-* Create bookmarks
+* Search content.
+* Filter data.
+* Create bookmarks.
![Dashboarding and data visualization apps quick actions](../../assets/images/app-fundamentals/dashboarding-and-data-visualization-apps-quick-actions.png)
In the third stage, enable users to create content such as, charts and graphics
You can provide following access to users:
-* Modify title and description
-* Insert data items to create visualizations
-* Share visualizations in a channel or group chat
+* Modify title and description.
+* Insert data items to create visualizations.
+* Share visualizations in a channel or group chat.
![Dashboarding and data visualization apps enablement](../../assets/images/app-fundamentals/dashboarding-and-data-visualization-apps-enablement.png)
Quick actions:
In the second stage, you can provide the following app access to users:
-* Create tasks or items with the mandatory fields to reduce cognitive load of the users
-* Change the board type or view
-* Review tasks by expanding the view
-* Use task modules to see detailed view
-* Move the tasks into different categories
-* Share relevant tasks in chats and channels through emails and activity feed
+* Create tasks or items with the mandatory fields to reduce cognitive load of the users.
+* Change the board type or view.
+* Review tasks by expanding the view.
+* Use task modules to see detailed view.
+* Move the tasks into different categories.
+* Share relevant tasks in chats and channels through emails and activity feed.
![Task boarding apps quick actions](../../assets/images/app-fundamentals/taskboarding-apps-quick-actions.png)
Enablement:
In the third stage, you can enable users' experience with the following activities:
-* Add new projects and boards
-* Add and modify different categories, such as **Proposed**, **Active**, and **Closed**
-* Configure the tasks for comments, attachments, and other complex features
+* Add new projects and boards.
+* Add and modify different categories, such as **Proposed**, **Active**, and **Closed**.
+* Configure the tasks for comments, attachments, and other complex features.
![Task boarding apps enablement](../../assets/images/app-fundamentals/taskboarding-apps-enablement.png) <br>
Consumption:
In the first stage, you can consider desktop experience to show the content and assets in your app. You can show the following functions:
-* Comments or feedback
-* Zoom in or out
-* Current stage or progress of a pending document
+* Comments or feedback.
+* Zoom in or out.
+* Current stage or progress of a pending document.
![Coauthoring and whiteboarding apps consumption](../../assets/images/app-fundamentals/coauthoring-and-whiteboarding-apps-consumption.png)
Quick Actions:
In the second stage, you can introduce the following actions:
-* Create new board for collaboration or new documents for signing
-* Share boards internally and also with guests
-* Configure admin permissions
+* Create new board for collaboration or new documents for signing.
+* Share boards internally and also with guests.
+* Configure admin permissions.
> [!TIP] > You expose actions, which can be shown easily on the small screens.
Enablement:
In the third stage, provide complete experience to your users. You can enable users' experience with the following activities:
-* Adding text, shapes, and quick notes
-* Navigate around content
-* Add layers and filters
-* Delete, undo, and redo operations
+* Adding text, shapes, and quick notes.
+* Navigate around content.
+* Add layers and filters.
+* Delete, undo, and redo operations.
* Access camera and microphone using JS SDK APIs. For more information on device capabilities, see [device capabilities overview](../device-capabilities/device-capabilities-overview.md). ![Coauthoring and whiteboarding apps enablement](../../assets/images/app-fundamentals/coauthoring-and-whiteboarding-apps-enablement.png)
platform Plan To Monetize https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/plan-to-monetize.md
Title: Plan to monetize your app
-description: learn how plan to monetize your Microsoft Teams app.
+description: In this learning module, you'll learn how plan to monetize your Microsoft Teams app and also understand the best monetization option for global visibility.
ms.localizationpriority: high
platform Understand Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/understand-use-cases.md
Title: Understanding your app's use cases and Teams features
-description: In this article learn about Microsoft Teams app capabilities, plan your Teams app, understand your app user and their needs, understand the user problems that your Teams app would solve, plan user authentication and their onboarding experience.
+description: In this article, you'll learn Microsoft Teams app capabilities, plan and understand Teams app and features, and also user problems that Teams app would solve.
ms.localizationpriority: high
platform Browser Device Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/device-capabilities/browser-device-permissions.md
After the **App permissions** option is selected, a popup appears where the user
A user will need to enable these permissions in the browser for these permissions to take effect. After user changes the appΓÇÖs device permissions in the browser, they're prompted to reload the application in Teams. > [!IMPORTANT]
-> You must make users aware of where to go to enable these **App permissions** in Microsoft Teams.
+> You must make users aware of where to go to enable these **App permissions** in Teams.
## Recommendation
Teams app that requires device permissions in the browser must show instructions
## Step-by-step guide
-Follow the [step-by-step guide](../../sbs-tab-device-permissions.yml) to grant tab device permission in Microsoft Teams.
+Follow the [step-by-step guide](../../sbs-tab-device-permissions.yml) to grant tab device permission in Teams.
## See also
platform Device Capabilities Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/device-capabilities/device-capabilities-overview.md
Microsoft Teams platform is continuously enhancing developer capabilities aligning with built-in first-party experiences. The enhanced Teams platform allows partners to integrate device capabilities, such as camera, QR or barcode scanner, photo gallery, microphone, and location with their web apps. This integration reduces the barrier to app development, speeds up development cycle, and creates new scenarios or use-cases for the developer community.
-Device permissions are different in the browser. Previously, browser handled how to grant access permissions and now these permissions are handled in Microsoft Teams. For more information, see [browser device permissions](browser-device-permissions.md).
+Device permissions are different in the browser. Previously, browser handled how to grant access permissions and now these permissions are handled in Teams. For more information, see [browser device permissions](browser-device-permissions.md).
## Native device capabilities
Also, you can integrate the Teams native [people picker control](people-picker-c
| Sample Name | Description | Node.js | |:|:--|:|
-|Device permissions | Describes how to demonstrates Microsoft Teams tab sample app for device permissions. |[View](<https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-device-permissions/nodejs>)|
+|Device permissions | Describes how to demonstrates Teams tab sample app for device permissions. |[View](<https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/tab-device-permissions/nodejs>)|
platform Native Device Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/device-capabilities/native-device-permissions.md
Title: Request device permissions for your Microsoft Teams app keywords: teams apps capabilities permissions device native scan qr barcode image audio video
-description: How to update your app manifest in order to request access to native features that usually require user consent, such as scan qr, barcode, image, audio, video capabilities
+description: How to update your app manifest in order to request access to native features that require user consent, such as scan QR, barcode, image, audio, and video capabilities
ms.localizationpriority: medium
You can enrich your Teams app with native device capabilities, such as camera, m
> > * To integrate media capabilities within your Microsoft Teams web client, desktop, and mobile, see [Integrate media capabilities](media-capabilities.md). > * To integrate QR or barcode scanner capability within your Microsoft Teams mobile app, see [Integrate QR or barcode scanner capability in Teams](qr-barcode-scanner-capability.md).
-> * To integrate location capabilities within your Microsoft Teams web client, desktop, and mobile, see [Integrate location capabilities](location-capability.md).
+> * To integrate location capabilities within your Teams web client, desktop, and mobile, see [Integrate location capabilities](location-capability.md).
## Native device permissions
By accessing the device capabilities, you can build richer experiences on the Te
> > * Currently, Teams doesn't support device permissions for multi-window apps, tabs, and the meeting side panel. > * Device permissions are different in the browser. For more information, see [browser device permissions](browser-device-permissions.md).
-> * Currently, Microsoft Teams support for QR barcode scanner capability is only available for mobile clients.
+> * Currently, Teams supports for QR barcode scanner capability is only available for mobile clients.
## Access device permissions
Leverage appropriate HTML5 or Teams API to display a prompt for getting consent
For example:
-* To prompt the user to access their location you must call `getCurrentPosition()`:
+* To prompt the user to access their location, you must call `getCurrentPosition()`:
```JavaScript navigator.geolocation.getCurrentPosition (function (position) { /*... */ }); ```
-* To prompt the user to access their camera on desktop or web you must call `getUserMedia()`:
+* To prompt the user to access their camera on desktop or web, you must call `getUserMedia()`:
```JavaScript navigator.mediaDevices.getUserMedia({ audio: true, video: true });
For example:
} ```
-* Notifications prompts the user when you call `requestPermission()`:
+* Notifications prompt the user when you call `requestPermission()`:
```JavaScript Notification.requestPermission(function(result) { /* ... */ });
platform Feedback https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/feedback.md
Title: Microsoft Teams developer community help and feedback
+ Title: Microsoft Teams developer community support and feedback
description: Learn Microsoft Teams product team responds to the developer community across various feedback and support channels. ms.localizationpriority: medium
platform Deploy Nodejs App Studio https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/deploy-nodejs-app-studio.md
If you're running the app using ngrok, you'll need to set up local environment v
Where: * The authorization credentials for your bot are as follows:
- * MICROSOFT_APP_ID is ID
- * MICROSOFT_APP_PASSWORD is password
+ * MICROSOFT_APP_ID is ID.
+ * MICROSOFT_APP_PASSWORD is password.
* NODE_DEBUG show you what's happening in your bot in the Visual Studio Code debug console * NODE_CONFIG_DIR points to the directory at the root of the repository (by default, when the app is run locally, it looks for the root directory in the `src` folder).
platform Get Started Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/get-started-overview.md
Title: Get started - Overview
-description: With this learning path, get started for Microsoft Teams developer documentation which introduces you to common tools, fundamental concepts, and advanced features.
+description: In this module, learn how to get started with Microsoft Teams developer documentation that introduces you to common tools, fundamental concepts, and advanced features.
ms.localizationpriority: high
platform Resource Specific Consent https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/graph-api/rsc/resource-specific-consent.md
Title: Enable resource-specific consent in Teams
-description: Describes resource-specific consent in Teams and how to make advantage of it.
+description: In this module, learn resource-specific consent in Microsoft Teams and how to make advantage of it.
ms.localizationpriority: medium
-keywords: teams authorization OAuth SSO Azure AD rsc Graph
# Resource-specific consent
platform Test Chat Rsc Json File https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/graph-api/rsc/test-chat-rsc-json-file.md
Title: Test resource-specific consent for a chat in Teams
-description: Learn how to test resource-specific consent for a chat in Teams using Postman with a sample JSON file.
+description: In this module, learn how to test resource-specific consent for a chat in Teams using Postman with a sample JSON file.
ms.localizationpriority: medium
-keywords: teams authorization OAuth SSO Azure AD rsc Postman Graph
# Test chat RSC Postman collection for JSON
platform Test Team Rsc Json File https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/graph-api/rsc/test-team-rsc-json-file.md
Title: Test resource-specific consent for a team in Teams
-description: Learn How to test resource-specific consent for a team in Teams using Postman with a sample JSON file.
+description: In this module, learn How to test resource-specific consent for a team in Teams using Postman with a sample JSON file.
ms.localizationpriority: medium
-keywords: teams authorization OAuth SSO Azure AD rsc Postman Graph
# Test team RSC Postman collection JSON
platform Extend M365 Teams Message Extension https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-teams-message-extension.md
The process to update your search-based Teams message extension to run Outlook i
> [!div class="checklist"] >
-> * Update your app manifest
-> * Add an Outlook channel for your bot
-> * Sideload your updated app in Teams
+> * Update your app manifest.
+> * Add an Outlook channel for your bot.
+> * Sideload your updated app in Teams.
The rest of this guide will walk you through these steps and show you how to preview your message extension in both Outlook for Windows desktop and outlook.com.
The rest of this guide will walk you through these steps and show you how to pre
To complete this tutorial, you'll need:
-* A Microsoft 365 Developer Program sandbox tenant
-* Enrollment in *Office 365 Targeted Releases* for your sandbox tenant
-* A test environment with Office apps installed from the Microsoft 365 Apps *Beta Channel*
-* (Optional) Microsoft Visual Studio Code with the Teams Toolkit extension
+* A Microsoft 365 Developer Program sandbox tenant.
+* Enrollment in *Office 365 Targeted Releases* for your sandbox tenant.
+* A test environment with Office apps installed from the Microsoft 365 Apps *Beta Channel*.
+* (Optional) Microsoft Visual Studio Code with the Teams Toolkit extension.
> [!div class="nextstepaction"] > [Publish Teams apps extended for Microsoft 365](publish.md)
platform Extend M365 Teams Personal Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
Updating your personal app to run in Outlook and Office involves these steps:
> [!div class="checklist"] >
-> * Update your app manifest
-> * Update your TeamsJS SDK references
-> * Amend your Content Security Policy headers
-> * Update your Microsoft Azure Active Directory (Azure AD) App Registration for Single Sign On (SSO)
-> * Sideload your updated app in Teams
+> * Update your app manifest.
+> * Update your TeamsJS SDK references.
+> * Amend your Content Security Policy headers.
+> * Update your Microsoft Azure Active Directory (Azure AD) App Registration for Single Sign On (SSO).
+> * Sideload your updated app in Teams.
The rest of this guide walks you through these steps and show you how to preview your personal tab in other Microsoft 365 applications.
platform Create Task Module https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md
Title: Create and send the task module
-description: Learn how to handle the initial invoke action and respond with a task module from an action messaging extension command using code examples and samples.
+description: In this module, learn how to handle the initial invoke action and respond with a task module from an action messaging extension command
ms.localizationpriority: medium
platform Define Action Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/define-action-command.md
Title: Define message extension action commands
-description: An overview of messaging extension action commands with app manifest example
+description: In this module, learn to define messaging extension action commands with app manifest example in Microsoft Teams.
ms.localizationpriority: medium
platform Respond To Task Module Submit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md
Title: Respond to the task module submit action
-description: Describes how to respond to the task module submit action from a messaging extension action command with Proactive message, another task module, Adaptive card bot, and more using Code samples.
+description: In this module, learn how to respond to the task module submit action from a messaging extension action command with Proactive message and more
ms.localizationpriority: medium
For authentication or configuration, after the user completes the process, the o
|Response Type | Compose | Command bar | Message | |--|:-:|:-:|::|
-|Card response | Γ£ö | Γ£ö | Γ£ö |
-|Another task module | Γ£ö | Γ£ö | Γ£ö |
-|Bot with Adaptive Card | Γ£ö | x | Γ£ö |
-| No response | Γ£ö | Γ£ö | Γ£ö |
+|Card response | ✔️ | ✔️ | ✔️ |
+|Another task module | ✔️ | ✔️ | ✔️ |
+|Bot with Adaptive Card | ✔️ | ❌ | ✔️ |
+| No response | ✔️ | ✔️ | ✔️ |
> [!NOTE] >
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/add-authentication.md
Title: Add authentication to your message extension
-description: Learn how to add authentication to a messaging extension using code examples and sample
+description: In this module, learn how to add authentication to a messaging extension using code examples and sample
ms.localizationpriority: medium
platform Enable SSO Auth Me https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/enable-SSO-auth-me.md
Title: SSO support for your message extensions
-description: Learn how to enable SSO support for your messaging extensions with Code samples.
+description: In this module, learn how to enable Single sign-on (SSO) support for your messaging extensions with Code samples.
ms.localizationpriority: medium
platform Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/link-unfurling.md
Title: Link unfurling
-description: Learn how to add link unfurling with messaging extension in a Microsoft Teams app with app manifest or manually using code examples and samples.
+description: In this module, learn how to add link unfurling with messaging extension in a Teams app with app manifest or manually using code examples and samples.
ms.localizationpriority: medium
platform Define Search Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md
Title: Define message extension search commands
-description: Learn about message extension search commands for Microsoft Teams apps, to create a search command through app manifest and manually using code examples and sample.
+description: In this module, learn about message extension search commands for Teams apps, to create a search command through app manifest and manually.
ms.localizationpriority: medium
platform Respond To Search https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md
Title: Respond to search command
-description: Learn how to respond to the search command from a message extension in a Microsoft Teams app using code examples and samples
+description: In this module, learn how to respond to the search command from a message extension in a Microsoft Teams app using code examples and samples
ms.localizationpriority: medium
platform What Are Messaging Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/what-are-messaging-extensions.md
Title: Message extensions
-description: An overview of messaging extensions on the Microsoft Teams platform
+description: In this module, learn messaging extensions and scenarios where message extensions are used on the Microsoft Teams platform
ms.localizationpriority: medium
platform Auth Oauth Card https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-authentication/auth-oauth-card.md
Title: Using Azure Bot Service for Authentication in Teams
-description: Describes the Azure Bot Service OAuthCard and how it is used for authentication
+description: Describes the Azure Bot Service OAuthCard and how it's used for authentication
localization_priority: Normal keywords: teams authentication OAuthCard OAuth card Azure Bot Service
keywords: teams authentication OAuthCard OAuth card Azure Bot Service
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-Without the Azure Bot ServiceΓÇÖs OAuthCard it is complicated to implement authentication in a bot. It is a full-stack challenge that involving building a web experience, integrating with external OAuth providers, token management, and handling the right server-to-server API calls to complete authentication flow securely. This can result in clunky experiences requiring the entry of ΓÇ£magic numbersΓÇ¥.
+Without the Azure Bot ServiceΓÇÖs OAuthCard it's complicated to implement authentication in a bot. It's a full-stack challenge that involving building a web experience, integrating with external OAuth providers, token management, and handling the right server-to-server API calls to complete authentication flow securely. This can result in clunky experiences requiring the entry of ΓÇ£magic numbersΓÇ¥.
-With Azure Bot ServiceΓÇÖs OAuthCard, it is easier for your Teams bot to sign in your users and access external data providers. Whether youΓÇÖve already implemented auth and you want to switch over to something simpler, or if you are looking to add authentication to your bot service for the first time, the OAuthCard can make it easier.
+With Azure Bot ServiceΓÇÖs OAuthCard, it's easier for your Teams bot to sign in your users and access external data providers. Whether youΓÇÖve already implemented auth and you want to switch over to something simpler, or if you are looking to add authentication to your bot service for the first time, the OAuthCard can make it easier.
-Other topics in [Authentication](~/resources/bot-v3/bot-authentication/auth-flow-bot.md) describe authentication without using the OAuthCard, so if you want to understand authentication in Teams more deeply, or have a situation where you can not use the OAuthCard, you can still refer to those topics.
+Other topics in [Authentication](~/resources/bot-v3/bot-authentication/auth-flow-bot.md) describe authentication without using the OAuthCard, so if you want to understand authentication in Teams more deeply, or have a situation where you cannot use the OAuthCard, you can still refer to those topics.
## Support for the OAuthCard There are currently some restrictions to where you can use the OAuthCard. These include:
-* The card will not work with [guest access](/MicrosoftTeams/guest-access)
-* It will not work with [Microsoft Teams free](https://products.office.com/microsoft-teams/free)
-* It can only be used for bot authentication
-* It only works for bots registered in the [Azure Bot Service](https://azure.microsoft.com/services/bot-service/)
+* The card won't work with [guest access](/MicrosoftTeams/guest-access).
+* It won't work with [Microsoft Teams free](https://products.office.com/microsoft-teams/free).
+* It can only be used for bot authentication.
+* It only works for bots registered in the [Azure Bot Service](https://azure.microsoft.com/services/bot-service/).
## How does the Azure Bot Service help me do authentication?
Because access tokens are sensitive information, you may not wish to have them s
## Getting started with OAuthCard in Teams > [!NOTE]
-> This guide is using the Bot Framework v3 SDK. You can find the v4 implementation [here](/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=csharp&preserve-view=true). You will still need to create a manifest and include token.botframework.com in the `validDomains` section, because otherwise the Sign in button will not open the authentication window. Use the [App Studio](~/concepts/build-and-test/app-studio-overview.md) to generate your manifest.
+> This guide is using the Bot Framework v3 SDK. You can find the v4 implementation [here](/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=csharp&preserve-view=true). You will still need to create a manifest and include token.botframework.com in the `validDomains` section, because otherwise the Sign in button won't open the authentication window. Use the [App Studio](~/concepts/build-and-test/app-studio-overview.md) to generate your manifest.
YouΓÇÖll first need to configure your Azure bot service to set up external authentication providers. Read [Configuring identity providers](~/concepts/authentication/configure-identity-provider.md) for detailed steps.
platform Bots Conv Channel https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-channel.md
Title: Channel and Group chat conversations with bots
-description: Describes the end-to-end scenario of having a conversation with a bot in a channel in Microsoft Teams
-keywords: teams scenarios channels conversation bot
+description: In this module, learn end-to-end scenario of having a conversation with a bot in a channel in Microsoft Teams
ms.localizationpriority: medium Last updated 06/25/2019
Last updated 06/25/2019
Microsoft Teams allows users to bring bots into their channel or group chat conversations. By adding a bot to a team or chat, all users of the conversation can take advantage of the bot functionality right in the conversation. You can also access Teams-specific functionality within your bot like querying team information and @mentioning users.
-Chat in channels and group chats differ from personal chat in that the user needs to @mention the bot. If a bot is used in multiple scopes such as personal, groupchat, or channel, you need to detect what scope the bot messages came from, and process them accordingly.
+Chat in channels and group chats differs from personal chat in that the user needs to @mention the bot. If a bot is used in multiple scopes such as personal, group chat, or channel, you need to detect what scope the bot messages came from, and process them accordingly.
## Designing a great bot for channels or groups
-Bots added to a team become another team member and can be @mentioned as part of the conversation. In fact, bots only receive messages when they are @mentioned, so other conversations on the channel are not sent to the bot.
+Bots added to a team become another team member and can be @mentioned as part of the conversation. In fact, bots only receive messages when they're @mentioned, so other conversations on the channel aren't sent to the bot.
A bot in a group or channel should provide information relevant and appropriate for all members. While your bot can certainly provide any information relevant to the experience, keep in mind conversations with it are visible to everyone. Therefore, a great bot in a group or channel should add value to all users, and certainly not inadvertently share information more appropriate to a one-to-one conversation.
-Your bot, just as it is, may be entirely relevant in all scopes without requiring additional work. In Microsoft Teams there is no expectation that your bot function in all scopes, but you should ensure that your bot provides user value in whichever scope(s) you choose to support. For more information on scopes, see [Apps in Microsoft Teams](~/concepts/build-and-test/app-studio-overview.md).
+Your bot, just as it is, may be entirely relevant in all scopes without requiring more work. In Microsoft Teams, there's no expectation that your bot function in all scopes, but you should ensure that your bot provides user value in whichever scope(s) you choose to support. For more information on scopes, see [Apps in Microsoft Teams](~/concepts/build-and-test/app-studio-overview.md).
Developing a bot that works in groups or channels uses much of the same functionality as personal conversations. Additional events and data in the payload provide Teams group and channel information. Those differences, as well as key differences in common functionality are described in the following sections. ### Creating messages
-For more information on bots creating messages in channels see [Proactive messaging for bots](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md), and specifically [Creating a channel conversation](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md#creating-a-channel-conversation).
+For more information on bots creating messages in channels, see [Proactive messaging for bots](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md), and specifically [Creating a channel conversation](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md#creating-a-channel-conversation).
### Receiving messages
In a channel, replying to a message shows as a reply to the initiating reply cha
### Best practice: Welcome messages in Teams
-When your bot is first added to the group or team, it is generally useful to send a welcome message introducing the bot to all users. The welcome message should provide a description of the botΓÇÖs functionality and user benefits. Ideally the message should also include commands for the user to interact with the app. To do this, ensure that your bot responds to the `conversationUpdate` message, with the `teamsAddMembers` eventType in the `channelData` object. Be sure that the `memberAdded` ID is the bot's App ID itself, because the same event is sent when a user is added to a team. See [Team member or bot addition](~/resources/bot-v3/bots-notifications.md#team-member-or-bot-addition) for more details.
+When your bot is first added to the group or team, it's useful to send a welcome message introducing the bot to all users. The welcome message should provide a description of the botΓÇÖs functionality and user benefits. Ideally the message should also include commands for the user to interact with the app. To do this, ensure that your bot responds to the `conversationUpdate` message, with the `teamsAddMembers` eventType in the `channelData` object. Be sure that the `memberAdded` ID is the bot's App ID itself, because the same event is sent when a user is added to a team. For more information, see [Team member or bot addition](~/resources/bot-v3/bots-notifications.md#team-member-or-bot-addition) for more details.
You might also want to send a personal message to each member of the team when the bot is added. To do this, you could [fetch the team roster](~/resources/bot-v3/bots-context.md#fetch-the-team-roster) and send each user a [direct message](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md).
We recommend that your bot *not* send a welcome message in the following situati
## @ Mentions
-Because bots in a group or channel respond only when they are mentioned ("@*botname*") in a message, every message received by a bot in a group channel contains its own name, and you must ensure your message parsing handles that. In addition, bots can parse out other users mentioned and mention users as part of their messages.
+Because bots in a group or channel respond only when they're mentioned ("@*botname*") in a message, every message received by a bot in a group channel contains its own name, and you must ensure your message parsing handles that. In addition, bots can parse out other users mentioned and mention users as part of their messages.
### Retrieving mentions
platform Bots Conv Personal https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-personal.md
Title: One-on-one conversations with bots
-description: Describes the end-to-end scenario of having a one-on-one conversation with a bot in Microsoft Teams
-keywords: teams scenarios 1on1 1to1 conversation bot
+description: In this module, learn end-to-end scenario of having a one-on-one conversation with a bot in Microsoft Teams
ms.localizationpriority: medium Last updated 05/20/2019
platform Bots Conv Proactive https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-proactive.md
Title: Proactive messaging for bots
-description: Learn how to use proactive messaging for bots in Microsoft Teams
+description: In this module, learn how to use proactive messaging for bots and best practices for proactive messaging in Microsoft Teams
ms.localizationpriority: medium
-keywords: teams scenarios proactive messaging conversation bot
# Proactive messaging for bots
keywords: teams scenarios proactive messaging conversation bot
A proactive message is a message that is sent by a bot to start a conversation. You may want your bot to start a conversation for a number of reasons, including:
-* Welcome messages for personal bot conversations
-* Poll responses
-* External event notifications
-
-Sending a message to start a new conversation thread is different than sending a message in response to an existing conversation: when your bot starts a new conversation, there is no pre-existing conversation to post the message to. To send a proactive message, you need to:
+* Welcome messages for personal bot conversations.
+* Poll responses.
+* External event notifications.
+Sending a message to start a new conversation thread is different than sending a message in response to an existing conversation: when your bot starts a new conversation, there's no pre-existing conversation to post the message to. To send a proactive message, you need to:
1. [Decide what you're going to say](#best-practices-for-proactive-messaging) 1. [Obtain the user's unique ID and tenant ID](#obtain-necessary-user-information)
When creating proactive messages you **must** call `MicrosoftAppCredentials.Trus
## Best practices for proactive messaging
-Sending proactive messages is an effective way to communicate with your users. However, from the user's perspective, the message appears unprompted. If there is a welcome message, it will be the first time that theyΓÇÖve interacted with your app. It's important to use this functionality and provide the complete information to the user to understand the purpose of this message.
+Sending proactive messages is an effective way to communicate with your users. However, from the user's perspective, the message appears unprompted. If there's a welcome message, it will be the first time that theyΓÇÖve interacted with your app. It's important to use this functionality and provide the complete information to the user to understand the purpose of this message.
Proactive messages generally fall into one of two categories, welcome messages or notifications. ### Welcome messages
-When using proactive messaging to send a welcome message to a user, ensure that from the user's perspective, the message appears unprompted. If there is a welcome message, it will be the first time that theyΓÇÖve interacted with your app. The best welcome messages will include:
+When using proactive messaging to send a welcome message to a user, ensure that from the user's perspective, the message appears unprompted. If there's a welcome message, it will be the first time that theyΓÇÖve interacted with your app. The best welcome messages will include:
* **Why they are receiving this message**: It should be clear to the user why they're receiving this message. If your bot was installed in a channel and you sent a welcome message to all users, let them know what channel it was installed in and potentially who installed it. * **What do you offer**: What can they do with your app? What value can you bring to them?
Occasionally it may be necessary to proactively message users that haven't insta
You can only install apps that are in your organizational app catalogue, or the Teams app store.
-See [Install apps for users](/graph/api/userteamwork-post-installedapps?view=graph-rest-1.0&tabs=http&preserve-view=true) in the Graph documentation for complete details. There is also a [sample in .NET](https://github.com/microsoftgraph/contoso-airlines-teams-sample/blob/283523d45f5ce416111dfc34b8e49728b5012739/project/Models/GraphService.cs#L176).
+See [Install apps for users](/graph/api/userteamwork-post-installedapps?view=graph-rest-1.0&tabs=http&preserve-view=true) in the Graph documentation for complete details. There's also a [sample in .NET](https://github.com/microsoftgraph/contoso-airlines-teams-sample/blob/283523d45f5ce416111dfc34b8e49728b5012739/project/Models/GraphService.cs#L176).
## Examples
platform Bots Conversations https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-conversations/bots-conversations.md
Title: Send and receive messages with a bot
-description: Describes how to send and receive messages with bots in Microsoft Teams
+description: In this module, learn to have a conversation with a Microsoft Teams bot, Proactive messages, Conversation basics, Message content and formatting
+ ms.localizationpriority: medium
-keywords: teams bots messages
Last updated 05/20/2019 # Have a conversation with a Microsoft Teams bot
For more information on formatting cards in messages, see [Card formatting](~/ta
Pictures are sent by adding attachments to a message. You can find more information on attachments in the [Bot Framework documentation](/azure/bot-service/dotnet/bot-builder-dotnet-add-media-attachments?view=azure-bot-service-3.0&preserve-view=true).
-Pictures can be at most 1024×1024 MB and 1 MB in PNG, JPEG, or GIF format; animated GIF is not supported.
+Pictures can be at most 1024×1024 MB and 1 MB in PNG, JPEG, or GIF format; animated GIF isn't supported.
We recommend that you specify the height and width of each image by using XML. If you use Markdown, the image size defaults to 256×256. For example:
The new message need not match the original in type. For instance, if the origin
### REST API
-To issue a message update, simply perform a PUT request against the `/v3/conversations/<conversationId>/activities/<activityId>/` endpoint using a given activity ID. To complete this scenario, you should cache the activity ID returned by the original POST call.
+To issue a message update, perform a PUT request against the `/v3/conversations/<conversationId>/activities/<activityId>/` endpoint using a given activity ID. To complete this scenario, you should cache the activity ID returned by the original POST call.
```json PUT /v3/conversations/19%3Aja0cu120i1jod12j%40skype.net/activities/012ujdo0128
platform Bots Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-cards.md
Title: Using cards in bots
-description: Describes cards and how they are used in bot messages
-keywords: bots cards messaging
+description: With this learning path, get started with cards and how they're used in bot messages in the Microsoft Teams.
ms.localizationpriority: medium Last updated 03/29/2018
Last updated 03/29/2018
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-A *card* is a user-interface (UI) container for short or related pieces of information. Cards can have multiple properties and attachments. Teams support cards in bots, connectors and message extensions. See [Cards](~/task-modules-and-cards/what-are-cards.md) for an overview of what cards are and how Teams uses them.
+A *card* is a user-interface (UI) container for short or related pieces of information. Cards can have multiple properties and attachments. Teams supports cards in bots, connectors and message extensions. See [Cards](~/task-modules-and-cards/what-are-cards.md) for an overview of what cards are and how Teams uses them.
Bots use cards as part of conversations. For more information, see [Bot Conversations](~/resources/bot-v3/bot-conversations/bots-conversations.md).
platform Bots Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-context.md
Title: Get context for your Microsoft Teams bot
-description: Describes how to get context for bots in Microsoft Teams
-keywords: teams bots context
+description: In this module, learn how to get context for bots in Microsoft Teams, fetch the team roster and user profile or roster in personal or group chat
ms.localizationpriority: medium Last updated 05/20/2019
platform Bots Create https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-create.md
Title: Create a bot
-description: Describes how to create bots in Microsoft Teams
+description: In this module, learn how to create a bots using the Microsoft Bot Framework and ready to work in Microsoft Teams
-keywords: teams bots creation
ms.localizationpriority: medium Last updated 12/07/2018
platform Bots Files https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-files.md
Title: Sending and receiving files from a bot
-description: Learn how to send and receive files through the bot using Graph APIs for personal, channel and groupchat scopes. Use Teams bot APIs using code samples based on the v3 Bot Framework SDK.
-keywords: teams bots files send receive
+description: Learn how to send and receive files through the bot using Graph APIs for personal, channel and group chat scopes.
ms.localizationpriority: medium Last updated 05/20/2019
The following sections describe how to do this to send file content as a result
In order to send and receive files in your bot, you have to set the `supportsFiles` property in the manifest to `true`. This property is described in the [bots](~/resources/schem#bots) section of the Manifest reference.
-The definition will look like this: `"supportsFiles": true`. If your bot does not enable `supportsFiles`, the following features will not work.
+The definition will look like this: `"supportsFiles": true`. If your bot doesn't enable `supportsFiles`, the following features won't work.
### Receiving files in personal chat
Uploading a file to a user involves the following steps:
1. Send a message to the user requesting permission to write the file. This message must contain a `FileConsentCard` attachment with the name of the file to be uploaded. 2. If the user accepts the file download, your bot will receive an *Invoke* activity with a location URL. 3. To transfer the file, your bot performs an `HTTP POST` directly into the provided location URL.
-4. Optionally, you can remove the original consent card if you do not want to allow the user to accept further uploads of the same file.
+4. Optionally, you can remove the original consent card if you don't want to allow the user to accept further uploads of the same file.
#### Message requesting permission to upload
Similarly, if the user declines the file, your bot will receive the following ev
### Notifying the user about an uploaded file
-After uploading a file to the user's OneDrive, whether you use the mechanism described above or OneDrive user delegated APIs, you should send a confirmation message to the user. This message should contain a `FileCard` attachment that the user can click on, either to preview it, open it in OneDrive, or download locally.
+After uploading a file to the user's OneDrive, whether you use the mechanism described above or OneDrive user delegated APIs, you should send a confirmation message to the user. This message should contain a `FileCard` attachment that the user can select on, either to preview it, open it in OneDrive, or download locally.
```json {
platform Bots Menus https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-menus.md
Title: Add a bot menu
-description: Describes how to create menus for bots in Microsoft Teams
-keywords: teams bots menus creation
+description: In this module, learn how to add a bot menu in Microsoft Teams and create menus for bots in Microsoft Teams
ms.localizationpriority: medium Last updated 05/20/2019
platform Bots Message Format https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-message-format.md
Title: Bot message format
-description: Describes the details of formatting for bot messages
-keywords: teams scenarios channels conversation bot message
+description: In this module, learn details of formatting for bot messages
ms.localizationpriority: medium Last updated 05/20/2019
Microsoft Teams supports a subset of Markdown and XML (HTML) formatting tags.
Currently, the following limitations apply:
-* Text-only messages do not support table formatting.
+* Text-only messages don't support table formatting.
* Rich cards support formatting in the text property only, not in the title or subtitle properties.
-* Rich cards do not support Markdown or table formatting.
+* Rich cards don't support Markdown or table formatting.
## Cross-platform support
-To ensure that your formatting works across all platforms supported by Microsoft Teams, be aware that some styles are not currently supported across all platforms.
+To ensure that your formatting works across all platforms supported by Microsoft Teams, be aware that some styles aren't currently supported across all platforms.
| Style | Text-only messages | Rich cards (XML only) | | | :: | :: |
-| bold | Γ£ö | Γ£û |
-| italic | Γ£ö | Γ£ö |
-| header (levels 1&ndash;3) | Γ£û | Γ£ö |
-| strikethrough | Γ£û | Γ£ö |
-| horizontal rule | Γ£û | Γ£û |
-| unordered list | Γ£û | Γ£ö |
-| ordered list | Γ£û | Γ£ö |
-| preformatted text | Γ£ö | Γ£ö |
-| blockquote | Γ£ö | Γ£ö |
-| hyperlink | Γ£ö | Γ£ö |
-| image link | Γ£ö | Γ£û |
+| bold | ✔️️ | ❌ |
+| italic | ✔️ | ✔️ |
+| header (levels 1&ndash;3) | ❌ | ✔️ |
+| strikethrough | ❌ | ✔️ |
+| horizontal rule | ❌ | ❌ |
+| unordered list | ❌ | ✔️ |
+| ordered list | ❌ | ✔️ |
+| preformatted text | ✔️ | ✔️ |
+| blockquote | ✔️ | ✔️ |
+| hyperlink | ✔️ | ✔️ |
+| image link | ✔️ | ❌ |
## Support by individual platform
Support for text formatting varies by type of message and by platform.
| Style | Desktop | iOS | Android | | | :: | :: | :: |
-| bold | Γ£ö | Γ£ö | Γ£ö |
-| italic | Γ£ö | Γ£ö | Γ£ö |
-| header (levels 1&ndash;3) | Γ£û | Γ£û | Γ£û |
-| strikethrough | Γ£ö | Γ£ö | Γ£û |
-| horizontal rule | Γ£û | Γ£û | Γ£û |
-| unordered list | Γ£ö | Γ£û | Γ£û |
-| ordered list | Γ£ö | Γ£û | Γ£û |
-| preformatted text | Γ£ö | Γ£ö | Γ£ö |
-| blockquote | Γ£ö | Γ£ö | Γ£ö |
-| hyperlink | Γ£ö | Γ£ö | Γ£ö |
-| image link | Γ£ö | Γ£ö | Γ£ö |
+| bold | ✔️ | ✔️ | ✔️ |
+| italic | ✔️ | ✔️ | ✔️ |
+| header (levels 1&ndash;3) | ❌ | ❌ | ❌ |
+| strikethrough | ✔️ | ✔️ | ❌ |
+| horizontal rule | ❌ | ❌ | ❌ |
+| unordered list | ✔️ | ❌ | ❌ |
+| ordered list | ✔️ | ❌ | ❌ |
+| preformatted text | ✔️ | ✔️ | ✔️ |
+| blockquote | ✔️ | ✔️ | ✔️ |
+| hyperlink | ✔️ | ✔️ | ✔️ |
+| image link | ✔️ | ✔️ | ✔️ |
### Cards
platform Bots Notification Only https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-notification-only.md
Title: Notification-only bots
-description: Describes what notification-only bots are in Microsoft Teams
-keywords: teams bots notification
+description: In this module, learn what notification-only bots are in Microsoft Teams, app manifest and its best practices and limitations
ms.localizationpriority: medium Last updated 01/29/2020
Last updated 01/29/2020
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-If your bot's sole purpose is to deliver notification to users and is not conversational, you can enable the `isNotificationOnly` field in your app manifest. This produces the following changes:
+If your bot's sole purpose is to deliver notification to users and isn't conversational, you can enable the `isNotificationOnly` field in your app manifest. This produces the following changes:
-* Users cannot message your notification-only bot.
-* Users cannot @mention the bot.
+* Users can't message your notification-only bot.
+* Users can't @mention the bot.
> [!NOTE] > The bot-only apps will surface in the personal app tray in both cases: `isNotificationOnly: true` or `isNotificationOnly: false`.
platform Bots Notifications https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-notifications.md
Title: Handle bot events
-description: Describes how to handle events in bots for Microsoft Teams
-keywords: teams bots events
+description: In this module, learn how to handle events in bots for Microsoft Teams, Teams member or bot addition, Team member or bot removed and more
Last updated 05/20/2019 ms.localizationpriority: medium
Microsoft Teams sends notifications to your bot for changes or events that happe
Each bot event is sent as an `Activity` object in which `messageType` defines what information is in the object. For messages of type `message`, see [Sending and receiving messages](~/resources/bot-v3/bot-conversations/bots-conversations.md).
-Teams and group events, usually triggered off the `conversationUpdate` type, have additional Teams event information passed as part of the `channelData` object, and therefore your event handler must query the `channelData` payload for the Teams `eventType` and additional event-specific metadata.
+Teams and group events, triggered off the `conversationUpdate` type, have more Teams event information passed as part of the `channelData` object, and therefore your event handler must query the `channelData` payload for the Teams `eventType` and more event-specific metadata.
The following table lists the events that your bot can receive and take action on.
The following table lists the events that your bot can receive and take action o
## Team member or bot addition
-The [`conversationUpdate`](/azure/bot-service/dotnet/bot-builder-dotnet-activities?view=azure-bot-service-3.0#conversationupdate&preserve-view=true) event is sent to your bot when it receives information on membership updates for teams where it has been added. It also receives an update when it has been added for the first time specifically for personal conversations. Note that the user information (`Id`) is unique for your bot and can be cached for future use by your service, such as, sending a message to a specific user.
+The [`conversationUpdate`](/azure/bot-service/dotnet/bot-builder-dotnet-activities?view=azure-bot-service-3.0#conversationupdate&preserve-view=true) event is sent to your bot when it receives information on membership updates for teams where it has been added. It also receives an update when it has been added for the first time specifically for personal conversations. The user information (`Id`) is unique for your bot and can be cached for future use by your service, such as, sending a message to a specific user.
### Bot or user added to a team
The `conversationUpdate` event with the `membersRemoved` object in the payload i
> [!NOTE] > There is no functionality to query all team names, and team name is not returned in payloads from other events.
-Your bot is notified when the team it is in has been renamed. It receives a `conversationUpdate` event with `eventType.teamRenamed` in the `channelData` object. Please note that there are no notifications for team creation or deletion, because bots exist only as part of teams and have no visibility outside the scope in which they have been added.
+Your bot is notified when the team it is in has been renamed. It receives a `conversationUpdate` event with `eventType.teamRenamed` in the `channelData` object. Note that there are no notifications for team creation or deletion, because bots exist only as part of teams and have no visibility outside the scope in which they've been added.
### Schema example: Team renamed
The channel events are as follows:
## Reactions
-The `messageReaction` event is sent when a user adds or removes his or her reaction to a message which was originally sent by your bot. `replyToId` contains the ID of the specific message.
+The `messageReaction` event is sent when a user adds or removes his or her reaction to a message, which was originally sent by your bot. `replyToId` contains the ID of the specific message.
### Schema example: A user likes a message
platform Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-overview.md
Title: Add bots to Microsoft Teams apps
-description: Describes how to get started developing bots in Microsoft Teams
+description: In this module, learn how to get started developing bots in Microsoft Teams and what are all the requirements to add a bot in Teams
-keywords: teams bots development
ms.localizationpriority: medium Last updated 05/20/2018
Build and connect intelligent bots to interact with Microsoft Teams users natura
A bot appears just like any other team member you interact with in a conversation except that it has a hexagonal avatar icon and is always online.
-A bot behaves differently depending on what kind of conversation it is involved in. Bots in Teams support several kinds of conversations called scopes in the [app manifest](~/resources/schem).
+A bot behaves differently depending on what kind of conversation it's involved in. Bots in Teams support several kinds of conversations called scopes in the [app manifest](~/resources/schem).
* `teams` Also called channel conversations. * `personal` Conversations between a bot and a single user.
-* `groupChat` A conversation between a bot and 2 or more users.
+* `groupChat` A conversation between a bot and two or more users.
For more information, see [Have a conversation with a Microsoft Teams bot](~/resources/bot-v3/bot-conversations/bots-conversations.md).
Outgoing webhooks allow you to create a simple bot for basic interaction, like k
## Build a great Teams bot
-The following topics will guide you through the process of creating a great bot for Teams:
+The following articles will guide you through the process of creating a great bot for Teams:
* [Create a bot](~/resources/bot-v3/bots-create.md): Take advantage of the great tools, documentation, and community provided by the Bot Framework team. * [Talk to your bot](~/resources/bot-v3/bot-conversations/bots-conversations.md): Add basic conversation flow and leverage channel-specific functionality. If you develop in .NET or Node.js, use our extensions for the Bot Builder SDK to simplify your work.
platform Bots Test https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-test.md
Title: Test and debug your bot
-description: This article describes how to test bots in Microsoft Teams
-keywords: teams bots testing
+description: In this article, you'll know how to test and debug your bots in Microsoft Teams and Test your bot without uploading to Teams
ms.localizationpriority: medium Last updated 03/20/2019
There are two methods for uploading your app. You can either use [App Studio](~/
## Debug your bot locally
-If you're hosting your bot locally during development you'll need to use a tunneling service like [ngrok](https://ngrok.com/) in order to test your bot. Once you've downloaded and installed ngrok, run the below command to start the tunneling service. You may need to add ngrok to your path.
+If you're hosting your bot locally during development, you'll need to use a tunneling service like [ngrok](https://ngrok.com/) in order to test your bot. Once you've downloaded and installed ngrok, run the below command to start the tunneling service. You may need to add ngrok to your path.
```bash ngrok http <port> -host-header=localhost:<port>
Occasionally it's necessary to test your bot without installing it as an app in
### Use the Bot Emulator
-The Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots, either locally or remotely. Using the emulator, you can chat with your bot and inspect the messages that your bot sends and receives. This can be useful for verifying that your bot is available and responding, however the emulator won't allow you to test any Teams-specific functionality you've added to your bot, nor will responses from your bot be an accurate visual representation of how they are rendered in Teams. If you need to test either of those things isn't best to [upload your bot](#test-by-uploading-to-teams).
+The Bot Framework Emulator is a desktop application that allows bot developers to test and debug their bots, either locally or remotely. Using the emulator, you can chat with your bot and inspect the messages that your bot sends and receives. This can be useful for verifying that your bot is available and responding, however the emulator won't allow you to test any Teams-specific functionality you've added to your bot, nor will responses from your bot be an accurate visual representation of how they're rendered in Teams. If you need to test either of those things isn't best to [upload your bot](#test-by-uploading-to-teams).
Complete instructions on the Bot Framework Emulator can be found [here](/azure/bot-service/bot-service-debug-emulator?view=azure-bot-service-4.0&preserve-view=true).
Your bot will receive the `conversationUpdate` event just like bots added to a t
## Blocking a bot in personal chat
-Note that users can choose to block your bot from sending personal chat messages. They may toggle this by right-clicking your bot in the chat channel and choosing **Block bot conversation**. This means your bots will continue to send messages but the user won't receive those messages.
+Users can choose to block your bot from sending personal chat messages. They may toggle this by right-clicking your bot in the chat channel and choosing **Block bot conversation**. This means your bots will continue to send messages but the user won't receive those messages.
:::image type="content" source="../../assets/images/bots/botdisable.png" alt-text="Blocking a bot"border="true":::
Note that users can choose to block your bot from sending personal chat messages
Users can delete the bot by choosing the trash-can icon on the bots list in their teams view. Note this only removes the bot from that team's use, individual users can interact in personal context.
-Bots in personal context cannot be disabled or removed by a user, short of completely removing the bot from Teams.
+Bots in personal context can't be disabled or removed by a user, short of completely removing the bot from Teams.
## Disabling a bot in Teams
To stop your bot receiving messages, go to your Bot Dashboard and edit the Micro
## Deleting a bot from Teams
-To remove your bot completely from Teams, go to your Bot Dashboard and edit the Microsoft Teams channel. Choose the **Delete** button at the bottom. This prevents users from discovering, adding, or interacting with your bot. Note that this does not remove the bot from other users' Teams instances, although it will cease functioning for them as well.
+To remove your bot completely from Teams, go to your Bot Dashboard and edit the Microsoft Teams channel. Choose the **Delete** button at the bottom. This prevents users from discovering, adding, or interacting with your bot. This doesn't remove the bot from other users' Teams instances, although it will cease functioning for them as well.
## Removing your bot from AppSource
platform Bots Text Formats https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-text-formats.md
Title: Supported text formatting in conversations
-description: Describes text formatting support in bot conversations
-keywords: bots conversations messaging
+description: In this module, learn text formatting support in bot conversations and formatting text content in Microsoft Teams
ms.localizationpriority: medium Last updated 03/29/2018
Microsoft Teams supports the following formatting options:
Microsoft Teams supports a subset of Markdown and XML (HTML) formatting tags. Currently, the following limitations apply:-
-* Text-only messages do not support table formatting
+* Text-only messages do not support table formatting.
For information on formatting in cards, see [Teams Card Reference](~/task-modules-and-cards/cards/cards-reference.md). ### Cross-platform support
-To ensure that your formatting works across all platforms supported by Microsoft Teams, be aware that some styles are not currently supported across all platforms.
+To ensure that your formatting works across all platforms supported by Microsoft Teams, be aware that some styles aren't currently supported across all platforms.
| Style | Text-only messages | Cards (XML only) | ||--||
platform Bots With Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-with-tabs.md
Title: Combine bots with tabs
-description: This article describes how to use tabs and bots together.
-keywords: teams bots tabs development
+description: In this article, you'll learn how to use tabs and bots together, constructing deep links to tabs in messages from your bot, and teams bots tabs development
ms.localizationpriority: medium Last updated 03/15/2018
This flow works best if your identity provider implements the OAuth 2.0 protocol
You want to use tabs to show more content than can fit inside of a card, or provide a way to complete complex form-filling tasks using the tab canvas. For example, consider navigating the user to the tab when he or she clicks on the card from your bot. For this to happen, youΓÇÖll need to encode your botΓÇÖs message to include a [deep link](~/concepts/build-and-test/deep-links.md) URL, either through markup or as the target of the openUrl action.
-Deep links rely on an entityId, which is an opaque value that maps to a unique entity in your system. When the tab is created, you ideally store some simple state, For example, flag on your backend indicating the tab has been created in the channel. When your bot constructs a message, it can target the entityId associated with that tab.
+Deep links rely on an entityId, which is an opaque value that maps to a unique entity in your system. When the tab is created, you ideally store some simple state. For example, flag on your backend indicating the tab has been created in the channel. When your bot constructs a message, it can target the entityId associated with that tab.
> [!NOTE] > in personal chats, because tabs are ΓÇ£staticΓÇ¥ and installed with the app, you can always assume their existence and thus construct deep links accordingly.
Often youΓÇÖll want to notify the end user whenever an update or a user action o
There are two ways of achieving this scenario:
-1. If you wish to notify an entire channel your bot can asynchronously post a message to the channel. There is no way for a bot to proactively create the tab conversation if it wasn't created with the tab.
+1. If you wish to notify an entire channel, your bot can asynchronously post a message to the channel. There's no way for a bot to proactively create the tab conversation if it wasn't created with the tab.
2. If you wish to only notify the recipient or interested parties involved with the action, your bot can send a personal chat message to the user. You should first check to see if a personal conversation between your bot and the user exists. If not, you can call `CreateConversation` to initiate the personal chat.
platform Create Messaging Extension Using Appstudio https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/create-messaging-extension-using-appstudio.md
At a high level, you'll need to complete the following steps to create a messaging extension.
-1. Prepare your development environment
-2. Create and deploy your web service (while developing use a tunneling service like ngrok to run it locally)
-3. Register your web service with the Bot Framework
-4. Create your app package
-5. Upload your package to Microsoft Teams
+1. Prepare your development environment.
+2. Create and deploy your web service (while developing use a tunneling service like ngrok to run it locally).
+3. Register your web service with the Bot Framework.
+4. Create your app package.
+5. Upload your package to Microsoft Teams.
Creating your web service, creating your app package, and registering your web service with the Bot Framework can be done in any order. Because those three pieces are so intertwined, no matter which order you do them in you'll need return to update the others. Your registration needs the messaging endpoint from your deployed web service, and your web service needs the ID and password created from your registration. Your app manifest also needs that ID to connect Teams to your web service.
platform Developer Preview Intro https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/dev-preview/developer-preview-intro.md
Title: Developer Preview
+ Title: Public developer preview for Microsoft Teams
description: In this article, know the features that are in the Public Developer Preview of Microsoft Teams and developer preview app manifest. ms.localizationpriority: high
platform Faqs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/faqs.md
Title: Frequently asked questions
-description: In this learning article, fetch answers to some frequently asked questions while using the Moodle LMS.
+ Title: Moodle Frequently asked questions
+description: In this article, fetch answers to some frequently asked questions while using the Moodle LMS.
ms.localizationpriority: high
platform Media Formats https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/media-formats.md
Title: Supported media formats for bots
-description: Bots on Microsoft Teams support only the following media formats for audio and video content.
+description: In this module, learn bots on Microsoft Teams support only the following media formats for audio and video content.
ms.localizationpriority: medium
-keywords: teams bots media formats
# Supported media formats for bots
platform Create Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/create-extensions.md
Title: Initiate actions with message extensions
-description: Create Action-based message extensions to allow users to trigger external services
+description: In this module, learn create Action-based message extensions to allow users to trigger external services
ms.localizationpriority: medium
-keywords: teams message extensions message extensions search
# Initiate actions with message extensions
platform Messaging Extensions Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/messaging-extensions-overview.md
Title: Develop message extensions
-description: Describes how to get started with message extensions in Microsoft Teams
+description: In this module, learn how to get started with message extensions in Microsoft Teams
ms.localizationpriority: medium
-keywords: teams messaging extensions messaging extensions
# Develop message extensions for Microsoft Teams
Message extensions are a powerful way for users to engage with your app from Mic
![Example of message extension card](~/assets/images/compose-extensions/ceexample.png)
-Message extensions appear along the bottom of the compose box. A few are built in, such as Emoji, Giphy, and Sticker. Choose the **More Options** (**&#8943;**) button to see other message extensions, including those you add from the app gallery or upload yourself.
+Message extensions appear along the bottom of the compose box. A few are built in, such as Emoji, gif, and Sticker. Choose the **More Options** (**&#8943;**) button to see other message extensions, including those you add from the app gallery or upload yourself.
How would you use message extensions? Here are a few possibilities:
-* Work items and bugs
-* Customer support tickets
-* Usage charts and reports
-* Images and media content
-* Sales opportunities and leads
+* Work items and bugs.
+* Customer support tickets.
+* Usage charts and reports.
+* Images and media content.
+* Sales opportunities and leads.
## Types of message extensions
platform Search Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/search-extensions.md
Title: Search with message extensions
-description: Describes how to develop search based message extensions
-keywords: teams message extensions message extensions search
+description: In this module, learn how to develop search based message extensions
ms.localizationpriority: medium Last updated 07/20/2019
platform Moodle Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/moodle-overview.md
Moodle is one of the largest open-source learning managing system (LMS), which provides unique remote learning experience powered with secured privacy services. Moodle LMS integrates with Microsoft Teams to provide the following
-* Audio or video calls
-* Chat with students
-* Courses and activity management
-* Badges and rewards
-* Analytical insights
+* Audio or video calls.
+* Chat with students.
+* Courses and activity.
+* Badges and rewards.
+* Analytical insights.
<!-- [Moodle](https://moodle.com/about/) is the worldΓÇÖs largest open-source learning management system (LMS). With greater than 30 years of experience in remote learning, it has attracted around 300 million users worldwide with its rich set of hosted and cloud-based services. Combining Moodle LMS and Teams provides an enhanced learning experience with modern superpowers. This content is modified as per the requirement.-->
platform Removing Tab Margins https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/removing-tab-margins.md
Title: Tab margin changes
-description: Describes how the removal of tab margins enhances app building experience.
-keywords: tab removing margins padding
+description: In this module, learn how the removal of tab margins enhances app building experience.
ms.localizationpriority: medium
platform Samesite Cookie Update https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/samesite-cookie-update.md
Title: SameSite cookie attribute description: Learn about Types of cookies, including SameSite cookies, their attributes, their implications in Teams tabs, task modules, and message extensions, and their authentication in Teams
-keywords: cookie attributes samesite
ms.localizationpriority: medium
platform Localization Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/localization-schema.md
Title: Localize JSON schema reference
description: Describes the localization schema supported by the localization file for Microsoft Teams using an example schema ms.localizationpriority: medium
-keywords: teams manifest schema localization
Last updated 05/20/2019
platform Manifest Schema Dev Preview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema-dev-preview.md
Specifies information about your company. For apps submitted to AppSource (forme
|Name| Maximum size | Required | Description| |||||
-|`name`|32 characters|Γ£ö|The display name for the developer.|
-|`websiteUrl`|2048 characters|Γ£ö|The https:// URL to the developer's website. This link should take users to your company or product-specific landing page.|
-|`privacyUrl`|2048 characters|Γ£ö|The https:// URL to the developer's privacy policy.|
-|`termsOfUseUrl`|2048 characters|Γ£ö|The https:// URL to the developer's terms of use.|
-|`mpnId`|10 characters|Γ£ö|**Optional** The Microsoft Partner Network ID that identifies the partner organization building the app.|
+|`name`|32 characters|✔️|The display name for the developer.|
+|`websiteUrl`|2048 characters|✔️|The https:// URL to the developer's website. This link should take users to your company or product-specific landing page.|
+|`privacyUrl`|2048 characters|✔️|The https:// URL to the developer's privacy policy.|
+|`termsOfUseUrl`|2048 characters|✔️|The https:// URL to the developer's terms of use.|
+|`mpnId`|10 characters|✔️|**Optional** The Microsoft Partner Network ID that identifies the partner organization building the app.|
## localizationInfo
Allows the specification of a default language, and pointers to additional langu
|Name| Maximum size | Required | Description| |||||
-|`defaultLanguageTag`|4 characters|Γ£ö|The language tag of the strings in this top level manifest file.|
+|`defaultLanguageTag`|4 characters|✔️|The language tag of the strings in this top level manifest file.|
### localizationInfo.additionalLanguages
An array of objects specifying additional language translations.
|Name| Maximum size | Required | Description| |||||
-|`languageTag`|4 characters|Γ£ö|The language tag of the strings in the provided file.|
-|`file`|4 characters|Γ£ö|A relative file path to the .json file containing the translated strings.|
+|`languageTag`|4 characters|✔️|The language tag of the strings in the provided file.|
+|`file`|4 characters|✔️|A relative file path to the .json file containing the translated strings.|
## name
The name of your app experience, displayed to users in the Teams experience. For
|Name| Maximum size | Required | Description| |||||
-|`short`|30 characters|Γ£ö|The short display name for the app.|
+|`short`|30 characters|✔️|The short display name for the app.|
|`full`|100 characters||The full name of the app, used if the full app name exceeds 30 characters.| ## description
Ensure that your description accurately describes your experience and provides i
|Name| Maximum size | Required | Description| |||||
-|`short`|80 characters|Γ£ö|A short description of your app experience, used when space is limited.|
-|`full`|4000 characters|Γ£ö|The full description of your app.|
+|`short`|80 characters|✔️|A short description of your app experience, used when space is limited.|
+|`full`|4000 characters|✔️|The full description of your app.|
## icons
Icons used within the Teams app. The icon files must be included as part of the
|Name| Maximum size | Required | Description| |||||
-|`outline`|2048 characters|Γ£ö|A relative file path to a transparent 32x32 PNG outline icon.|
-|`color`|2048 characters|Γ£ö|A relative file path to a full color 192x192 PNG icon.|
+|`outline`|2048 characters|✔️|A relative file path to a transparent 32x32 PNG outline icon.|
+|`color`|2048 characters|✔️|A relative file path to a full color 192x192 PNG icon.|
## accentColor
The object is an array with all elements of the type `object`. This block is req
|Name| Type| Maximum size | Required | Description| ||||||
-|`configurationUrl`|String|2048 characters|Γ£ö|The https:// URL to use when configuring the tab.|
+|`configurationUrl`|String|2048 characters|✔️|The https:// URL to use when configuring the tab.|
|`canUpdateConfiguration`|Boolean|||A value indicating whether an instance of the tab's configuration can be updated by the user after creation. Default: `true`|
-|`scopes`|Array of enum|1|Γ£ö|Currently, configurable tabs support only the `team` and `groupchat` scopes. |
+|`scopes`|Array of enum|1|✔️|Currently, configurable tabs support only the `team` and `groupchat` scopes. |
|`context` |array of enums|6||The set of `contextItem` scopes where a [tab is supported](../../tabs/how-to/access-teams-context.md). Default: `channelTab`, `privateChatTab`, `meetingChatTab`, `meetingDetailsTab`, `meetingSidePanel`, and `meetingStage`.| |`sharePointPreviewImage`|String|2048||A relative file path to a tab preview image for use in SharePoint. Size 1024x768. | |`supportedSharePointHosts`|Array of enum|1||Defines how your tab will be made available in SharePoint. Options are `sharePointFullPage` and `sharePointWebPart` |
The object is an array (maximum of 16 elements) with all elements of the type `o
|Name| Type| Maximum size | Required | Description| ||||||
-|`entityId`|String|64 characters|Γ£ö|A unique identifier for the entity that the tab displays.|
-|`name`|String|128 characters|Γ£ö|The display name of the tab in the channel interface.|
-|`contentUrl`|String|2048 characters|Γ£ö|The https:// URL that points to the entity UI to be displayed in the Teams canvas.|
+|`entityId`|String|64 characters|✔️|A unique identifier for the entity that the tab displays.|
+|`name`|String|128 characters|✔️|The display name of the tab in the channel interface.|
+|`contentUrl`|String|2048 characters|✔️|The https:// URL that points to the entity UI to be displayed in the Teams canvas.|
|`contentBotId`| | | | The Microsoft Teams app ID specified for the bot in the Bot Framework portal. | |`websiteUrl`|String|2048 characters||The https:// URL to point at if a user opts to view in a browser.|
-|`scopes`|Array of enum|1|Γ£ö|Currently, static tabs support only the `personal` scope, which means it can be provisioned only as part of the personal experience.|
+|`scopes`|Array of enum|1|✔️|Currently, static tabs support only the `personal` scope, which means it can be provisioned only as part of the personal experience.|
## bots
The object is an array (maximum of only 1 element&mdash;currently only one bot i
|Name| Type| Maximum size | Required | Description| ||||||
-|`botId`|String|64 characters|Γ£ö|The unique Microsoft app ID for the bot as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
+|`botId`|String|64 characters|✔️|The unique Microsoft app ID for the bot as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
|`needsChannelSelector`|Boolean|||Describes whether or not the bot utilizes a user hint to add the bot to a specific channel. Default: `false`| |`isNotificationOnly`|Boolean|||Indicates whether a bot is a one-way, notification-only bot, as opposed to a conversational bot. Default: `false`| |`supportsFiles`|Boolean|||Indicates whether the bot supports the ability to upload/download files in personal chat. Default: `false`|
-|`scopes`|Array of enum|3|Γ£ö|Specifies whether the bot offers an experience in the context of a channel in a `team`, in a group chat (`groupchat`), or an experience scoped to an individual user alone (`personal`). These options are non-exclusive.|
+|`scopes`|Array of enum|3|✔️|Specifies whether the bot offers an experience in the context of a channel in a `team`, in a group chat (`groupchat`), or an experience scoped to an individual user alone (`personal`). These options are non-exclusive.|
### bots.commandLists
An optional list of commands that your bot can recommend to users. The object is
|Name| Type| Maximum size | Required | Description| ||||||
-|`items.scopes`|array of enum|3|Γ£ö|Specifies the scope for which the command list is valid. Options are `team`, `personal`, and `groupchat`.|
-|`items.commands`|array of objects|10|Γ£ö|An array of commands the bot supports:<br>`title`: the bot command name (string, 32).<br>`description`: a simple description or example of the command syntax and its argument (string, 128).|
+|`items.scopes`|array of enum|3|✔️|Specifies the scope for which the command list is valid. Options are `team`, `personal`, and `groupchat`.|
+|`items.commands`|array of objects|10|✔️|An array of commands the bot supports:<br>`title`: the bot command name (string, 32).<br>`description`: a simple description or example of the command syntax and its argument (string, 128).|
## connectors
The object is an array (maximum of 1 element) with all elements of type `object`
|Name| Type| Maximum size | Required | Description| ||||||
-|`configurationUrl`|String|2048 characters|Γ£ö|The https:// URL to use when configuring the connector.|
-|`connectorId`|String|64 characters|Γ£ö|A unique identifier for the Connector that matches its ID in the [Connectors Developer Dashboard](https://aka.ms/connectorsdashboard).|
-|`scopes`|Array of enum|1|Γ£ö|Specifies whether the Connector offers an experience in the context of a channel in a `team`, or an experience scoped to an individual user alone (`personal`). Currently, only the `team` scope is supported.|
+|`configurationUrl`|String|2048 characters|✔️|The https:// URL to use when configuring the connector.|
+|`connectorId`|String|64 characters|✔️|A unique identifier for the Connector that matches its ID in the [Connectors Developer Dashboard](https://aka.ms/connectorsdashboard).|
+|`scopes`|Array of enum|1|✔️|Specifies whether the Connector offers an experience in the context of a channel in a `team`, or an experience scoped to an individual user alone (`personal`). Currently, only the `team` scope is supported.|
## composeExtensions
The object is an array (maximum of 1 element) with all elements of type `object`
|Name| Type | Maximum Size | Required | Description| ||||||
-|`botId`|String|64|Γ£ö|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
+|`botId`|String|64|✔️|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. This may well be the same as the overall [app ID](#id).|
|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a message extension can be updated by the user. The default is `false`.|
-|`commands`|Array of object|10|Γ£ö|Array of commands the message extension supports|
+|`commands`|Array of object|10|✔️|Array of commands the message extension supports|
### composeExtensions.commands
Each command item is an object with the following structure:
|Name| Type| Maximum size | Required | Description| ||||||
-|`id`|String|64 characters|Γ£ö|The ID for the command.|
+|`id`|String|64 characters|✔️|The ID for the command.|
|`type`|String|64 characters||Type of the command. One of `query` or `action`. Default: `query`|
-|`title`|String|32 characters|Γ£ö|The user-friendly command name.|
+|`title`|String|32 characters|✔️|The user-friendly command name.|
|`description`|String|128 characters||The description that appears to users to indicate the purpose of this command.| |`initialRun`|Boolean|||A Boolean value that indicates whether the command should be run initially with no parameters. Default: `false`| |`context`|Array of Strings|3||Defines where the message extension can be invoked from. Any combination of `compose`, `commandBox`, `message`. Default is `["compose", "commandBox"]`|
Each command item is an object with the following structure:
|`messageHandlers`|Array of Objects|5||A list of handlers that allow apps to be invoked when certain conditions are met. Domains must also be listed in `validDomains`.| |`messageHandlers.type`|String|||The type of message handler. Must be `"link"`.| |`messageHandlers.value.domains`|Array of Strings|||Array of domains that the link message handler can register for.|
-|`parameters`|Array of object|5|Γ£ö|The list of parameters the command takes. Minimum: 1; maximum: 5|
-|`parameter.name`|String|64 characters|Γ£ö|The name of the parameter as it appears in the client. This is included in the user request.|
-|`parameter.title`|String|32 characters|Γ£ö|User-friendly title for the parameter.|
+|`parameters`|Array of object|5|✔️|The list of parameters the command takes. Minimum: 1; maximum: 5|
+|`parameter.name`|String|64 characters|✔️|The name of the parameter as it appears in the client. This is included in the user request.|
+|`parameter.title`|String|32 characters|✔️|User-friendly title for the parameter.|
|`parameter.description`|String|128 characters||User-friendly string that describes this parameterΓÇÖs purpose.| |`parameter.inputType`|String|128 characters||Defines the type of control displayed on a task module for `fetchTask: true`. One of `text`, `textarea`, `number`, `date`, `time`, `toggle`, `choiceset`.| |`parameter.choices`|Array of Objects|10||The choice options for the `choiceset`. Use only when `parameter.inputType` is `choiceset`.|
Specify your Microsoft Azure Active Directory (Azure AD) App ID and Graph inform
|Name| Type| Maximum size | Required | Description| ||||||
-|`id`|String|36 characters|Γ£ö|Microsoft Azure Active Directory (Azure AD) application ID of the app. This ID must be a GUID.|
-|`resource`|String|2048 characters|Γ£ö|Resource URL of the app for acquiring auth token for SSO.|
-|`applicationPermissions`|Array|Maximum 100 items|Γ£ö|Resource permissions for application.|
+|`id`|String|36 characters|✔️|Microsoft Azure Active Directory (Azure AD) application ID of the app. This ID must be a GUID.|
+|`resource`|String|2048 characters|✔️|Resource URL of the app for acquiring auth token for SSO.|
+|`applicationPermissions`|Array|Maximum 100 items|✔️|Resource permissions for application.|
## graphConnector
Specify the app's Graph connector configuration. If this is present then [webApp
|Name| Type| Maximum size | Required | Description| ||||||
-|`notificationUrl`|string|2048 characters|Γ£ö|The url where Graph-connector notifications for the application should be sent.|
+|`notificationUrl`|string|2048 characters|✔️|The url where Graph-connector notifications for the application should be sent.|
## showLoadingIndicator
Define the properties your app uses to post a user activity feed.
|Name| Type| Maximum size | Required | Description| ||||||
-|`type`|string|32 characters|Γ£ö|The notification type. *See below*.|
-|`description`|string|128 characters|Γ£ö|A brief description of the notification. *See below*.|
-|`templateText`|string|128 characters|Γ£ö|Ex: "{actor} created task {taskId} for you"|
+|`type`|string|32 characters|✔️|The notification type. *See below*.|
+|`description`|string|128 characters|✔️|A brief description of the notification. *See below*.|
+|`templateText`|string|128 characters|✔️|Ex: "{actor} created task {taskId} for you"|
```json {
Specifies the SaaS offer associated with your app.
|Name| Type| Maximum size | Required | Description| ||||||
-|`offerId`| string | 2,048 characters | Γ£ö | A unique identifier that includes your Publisher ID and Offer ID, which you can find in [Partner Center](https://partner.microsoft.com/dashboard). You must format the string as `publisherId.offerId`.|
+|`offerId`| string | 2,048 characters | ✔️ | A unique identifier that includes your Publisher ID and Offer ID, which you can find in [Partner Center](https://partner.microsoft.com/dashboard). You must format the string as `publisherId.offerId`.|
## meetingExtensionDefinition
Specify meeting extension definition. For more information, see [custom Together
|Name| Type|Maximum size|Required |Description| ||||||
-|`id`|||Γ£ö| The unique identifier for the scene. This id must be a GUID. |
-|`name`| string | 128 characters |Γ£ö| The name of the scene. |
-|`file`|||Γ£ö| The relative file path to the scenes' metadata json file. |
-|`preview`|||Γ£ö| The relative file path to the scenes' PNG preview icon. |
-|`maxAudience`| integer | 50 |Γ£ö| The maximum number of audiences supported in the scene. |
-|`seatsReservedForOrganizersOrPresenters`| integer | 50 |Γ£ö| The number of seats reserved for organizers or presenters.|
+|`id`|||✔️| The unique identifier for the scene. This id must be a GUID. |
+|`name`| string | 128 characters |✔️| The name of the scene. |
+|`file`|||✔️| The relative file path to the scenes' metadata json file. |
+|`preview`|||✔️| The relative file path to the scenes' PNG preview icon. |
+|`maxAudience`| integer | 50 |✔️| The maximum number of audiences supported in the scene. |
+|`seatsReservedForOrganizersOrPresenters`| integer | 50 |✔️| The number of seats reserved for organizers or presenters.|
## authorization
Specify and consolidate authorization related information for the app.
|Name| Type|Maximum size|Required |Description| ||||||
-|`type`|string||Γ£ö| The type of the resource-specific permission. Options: `Application` and `Delegated`.|
-|`name`|string|128 characters|Γ£ö|The name of the resource-specific permission. For more information, see [Resource-specific application permissions](#resource-specific-application-permissions) and [Resource-specific delegated permissions](#resource-specific-delegated-permissions)|
+|`type`|string||✔️| The type of the resource-specific permission. Options: `Application` and `Delegated`.|
+|`name`|string|128 characters|✔️|The name of the resource-specific permission. For more information, see [Resource-specific application permissions](#resource-specific-application-permissions) and [Resource-specific delegated permissions](#resource-specific-delegated-permissions)|
#### Resource-specific application permissions
platform Manifest Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema.md
Specifies information about your company. For apps submitted to the Teams store,
|Name| Maximum size | Required | Description| |||||
-|`name`|32 characters|Γ£ö|The display name for the developer.|
-|`websiteUrl`|2048 characters|Γ£ö|The https:// URL to the developer's website. This link must take users to your company or product-specific landing page.|
-|`privacyUrl`|2048 characters|Γ£ö|The https:// URL to the developer's privacy policy.|
-|`termsOfUseUrl`|2048 characters|Γ£ö|The https:// URL to the developer's terms of use.|
+|`name`|32 characters|✔️|The display name for the developer.|
+|`websiteUrl`|2048 characters|✔️|The https:// URL to the developer's website. This link must take users to your company or product-specific landing page.|
+|`privacyUrl`|2048 characters|✔️|The https:// URL to the developer's privacy policy.|
+|`termsOfUseUrl`|2048 characters|✔️|The https:// URL to the developer's terms of use.|
|`mpnId`|10 characters| |**Optional** The Microsoft Partner Network ID that identifies the partner organization building the app.| ## name
The name of your app experience, displayed to users in the Teams experience. For
|Name| Maximum size | Required | Description| |||||
-|`short`|30 characters|Γ£ö|The short display name for the app.|
+|`short`|30 characters|✔️|The short display name for the app.|
|`full`|100 characters||The full name of the app, used if the full app name exceeds 30 characters.| ## description
Ensure that your description describes your experience and helps potential custo
|Name| Maximum size | Required | Description| |||||
-|`short`|80 characters|Γ£ö|A short description of your app experience, used when space is limited.|
-|`full`|4000 characters|Γ£ö|The full description of your app.|
+|`short`|80 characters|✔️|A short description of your app experience, used when space is limited.|
+|`full`|4000 characters|✔️|The full description of your app.|
## packageName
Allows the specification of a default language and provides pointers to more lan
|Name| Maximum size | Required | Description| |||||
-|`defaultLanguageTag`||Γ£ö|The language tag of the strings in this top-level manifest file.|
+|`defaultLanguageTag`||✔️|The language tag of the strings in this top-level manifest file.|
### localizationInfo.additionalLanguages
An array of objects specifying more language translations.
|Name| Maximum size | Required | Description| |||||
-|`languageTag`||Γ£ö|The language tag of the strings in the provided file.|
-|`file`||Γ£ö|A relative file path to the .json file containing the translated strings.|
+|`languageTag`||✔️|The language tag of the strings in the provided file.|
+|`file`||✔️|A relative file path to the .json file containing the translated strings.|
## icons
Icons used within the Teams app. The icon files must be included as part of the
|Name| Maximum size | Required | Description| |||||
-|`outline`|32 x 32 pixels|Γ£ö|A relative file path to a transparent 32x32 PNG outline icon.|
-|`color`|192 x 192 pixels|Γ£ö|A relative file path to a full color 192x192 PNG icon.|
+|`outline`|32 x 32 pixels|✔️|A relative file path to a transparent 32x32 PNG outline icon.|
+|`color`|192 x 192 pixels|✔️|A relative file path to a full color 192x192 PNG icon.|
## accentColor
Used when your app experience has a team channel tab experience that requires ex
|Name| Type| Maximum size | Required | Description| ||||||
-|`configurationUrl`|string|2048 characters|Γ£ö|The https:// URL to use when configuring the tab.|
-|`scopes`|array of enums|1|Γ£ö|Currently, configurable tabs support only the `team` and `groupchat` scopes. |
+|`configurationUrl`|string|2048 characters|✔️|The https:// URL to use when configuring the tab.|
+|`scopes`|array of enums|1|✔️|Currently, configurable tabs support only the `team` and `groupchat` scopes. |
|`canUpdateConfiguration`|Boolean|||A value indicating whether an instance of the tab's configuration can be updated by the user after creation. Default: **true**.| |`context` |array of enums|6||The set of `contextItem` scopes where a [tab is supported](../../tabs/how-to/access-teams-context.md). Default: **[channelTab, privateChatTab, meetingChatTab, meetingDetailsTab]**.| |`sharePointPreviewImage`|string|2048||A relative file path to a tab preview image for use in SharePoint. Size 1024x768. |
This item is an array (maximum of 16 elements) with all elements of the type `ob
|Name| Type| Maximum size | Required | Description| ||||||
-|`entityId`|string|64 characters|Γ£ö|A unique identifier for the entity that the tab displays.|
-|`name`|string|128 characters|Γ£ö|The display name of the tab in the channel interface.|
-|`contentUrl`|string||Γ£ö|The https:// URL that points to the entity UI to be displayed in the Teams canvas.|
+|`entityId`|string|64 characters|✔️|A unique identifier for the entity that the tab displays.|
+|`name`|string|128 characters|✔️|The display name of the tab in the channel interface.|
+|`contentUrl`|string||✔️|The https:// URL that points to the entity UI to be displayed in the Teams canvas.|
|`websiteUrl`|string|||The https:// URL to point to if a user opts to view in a browser.| |`searchUrl`|string|||The https:// URL to point to for a user's search queries.|
-|`scopes`|array of enums|1|Γ£ö|Currently, static tabs support only the `personal` scope, which means it can be provisioned only as part of the personal experience.|
+|`scopes`|array of enums|1|✔️|Currently, static tabs support only the `personal` scope, which means it can be provisioned only as part of the personal experience.|
|`context` | array of enums| 2|| The set of `contextItem` scopes where a tab is supported.| > [!NOTE]
The item is an array (maximum of only one element&mdash;currently only one bot i
|Name| Type| Maximum size | Required | Description| ||||||
-|`botId`|string|64 characters|Γ£ö|The unique Microsoft app ID for the bot as registered with the Bot Framework. The ID can be the same as the overall [app ID](#id).|
-|`scopes`|array of enums|3|Γ£ö|Specifies whether the bot offers an experience in the context of a channel in a `team`, in a group chat (`groupchat`), or an experience scoped to an individual user alone (`personal`). These options are non-exclusive.|
+|`botId`|string|64 characters|✔️|The unique Microsoft app ID for the bot as registered with the Bot Framework. The ID can be the same as the overall [app ID](#id).|
+|`scopes`|array of enums|3|✔️|Specifies whether the bot offers an experience in the context of a channel in a `team`, in a group chat (`groupchat`), or an experience scoped to an individual user alone (`personal`). These options are non-exclusive.|
|`needsChannelSelector`|Boolean|||Describes whether or not the bot uses a user hint to add the bot to a specific channel. Default: **`false`**| |`isNotificationOnly`|Boolean|||Indicates whether a bot is a one-way, notification-only bot, as opposed to a conversational bot. Default: **`false`**| |`supportsFiles`|Boolean|||Indicates whether the bot supports the ability to upload/download files in personal chat. Default: **`false`**|
An optional list of commands that your bot can recommend to users. The object is
|Name| Type| Maximum size | Required | Description| ||||||
-|`items.scopes`|array of enums|3|Γ£ö|Specifies the scope for which the command list is valid. Options are `team`, `personal`, and `groupchat`.|
-|`items.commands`|array of objects|10|Γ£ö|An array of commands the bot supports:<br>`title`: the bot command name (string, 32)<br>`description`: a simple description or example of the command syntax and its argument (string, 128).|
+|`items.scopes`|array of enums|3|✔️|Specifies the scope for which the command list is valid. Options are `team`, `personal`, and `groupchat`.|
+|`items.commands`|array of objects|10|✔️|An array of commands the bot supports:<br>`title`: the bot command name (string, 32)<br>`description`: a simple description or example of the command syntax and its argument (string, 128).|
### bots.commandLists.commands |Name| Type| Maximum size | Required | Description| ||||||
-|title|string|12|Γ£ö|The bot command name.|
-|description|string|128 characters|Γ£ö|A simple text description or an example of the command syntax and its arguments.|
+|title|string|12|✔️|The bot command name.|
+|description|string|128 characters|✔️|A simple text description or an example of the command syntax and its arguments.|
## connectors
The object is an array (maximum of one element) with all elements of type `objec
|Name| Type| Maximum size | Required | Description| ||||||
-|`configurationUrl`|string|2048 characters|Γ£ö|The https:// URL to use when configuring the connector.|
-|`scopes`|array of enums|1|Γ£ö|Specifies whether the Connector offers an experience in the context of a channel in a `team`, or an experience scoped to an individual user alone (`personal`). Currently, only the `team` scope is supported.|
-|`connectorId`|string|64 characters|Γ£ö|A unique identifier for the Connector that matches its ID in the [Connectors Developer Dashboard](https://aka.ms/connectorsdashboard).|
+|`configurationUrl`|string|2048 characters|✔️|The https:// URL to use when configuring the connector.|
+|`scopes`|array of enums|1|✔️|Specifies whether the Connector offers an experience in the context of a channel in a `team`, or an experience scoped to an individual user alone (`personal`). Currently, only the `team` scope is supported.|
+|`connectorId`|string|64 characters|✔️|A unique identifier for the Connector that matches its ID in the [Connectors Developer Dashboard](https://aka.ms/connectorsdashboard).|
## composeExtensions
The item is an array (maximum of one element) with all elements of type `object`
|Name| Type | Maximum Size | Required | Description| ||||||
-|`botId`|string|64|Γ£ö|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. The ID can be the same as the overall App ID.|
-|`commands`|array of objects|10|Γ£ö|Array of commands the message extension supports.|
+|`botId`|string|64|✔️|The unique Microsoft app ID for the bot that backs the message extension, as registered with the Bot Framework. The ID can be the same as the overall App ID.|
+|`commands`|array of objects|10|✔️|Array of commands the message extension supports.|
|`canUpdateConfiguration`|Boolean|||A value indicating whether the configuration of a message extension can be updated by the user. Default: **false**.| |`messageHandlers`|array of Objects|5||A list of handlers that allow apps to be invoked when certain conditions are met.| |`messageHandlers.type`|string|||The type of message handler. Must be `"link"`.|
Each command item is an object with the following structure:
|Name| Type| Maximum size | Required | Description| ||||||
-|`id`|string|64 characters|Γ£ö|The ID for the command.|
-|`title`|string|32 characters|Γ£ö|The user-friendly command name.|
+|`id`|string|64 characters|✔️|The ID for the command.|
+|`title`|string|32 characters|✔️|The user-friendly command name.|
|`type`|string|64 characters||Type of the command. One of `query` or `action`. Default: **query**.| |`description`|string|128 characters||The description that appears to users to indicate the purpose of this command.| |`initialRun`|Boolean|||A Boolean value indicates whether the command runs initially with no parameters. Default is **false**.|
Each command item is an object with the following structure:
|`taskInfo.width`|string|||Dialog width - either a number in pixels or default layout such as 'large', 'medium', or 'small'.| |`taskInfo.height`|string|||Dialog height - either a number in pixels or default layout such as 'large', 'medium', or 'small'.| |`taskInfo.url`|string|||Initial webview URL.|
-|`parameters`|array of object|5 items|Γ£ö|The list of parameters the command takes. Minimum: 1; maximum: 5.|
-|`parameters.name`|string|64 characters|Γ£ö|The name of the parameter as it appears in the client. The parameter name is included in the user request.|
-|`parameters.title`|string|32 characters|Γ£ö|User-friendly title for the parameter.|
+|`parameters`|array of object|5 items|✔️|The list of parameters the command takes. Minimum: 1; maximum: 5.|
+|`parameters.name`|string|64 characters|✔️|The name of the parameter as it appears in the client. The parameter name is included in the user request.|
+|`parameters.title`|string|32 characters|✔️|User-friendly title for the parameter.|
|`parameters.description`|string|128 characters||User-friendly string that describes this parameterΓÇÖs purpose.| |`parameters.value`|string|512 characters||Initial value for the parameter. Currently the value is not supported| |`parameters.inputType`|string|128 characters||Defines the type of control displayed on a task module for`fetchTask: true` . One of `text, textarea, number, date, time, toggle, choiceset` .| |`parameters.choices`|array of objects|10 items||The choice options for the`choiceset`. Use only when`parameter.inputType` is `choiceset`.|
-|`parameters.choices.title`|string|128 characters|Γ£ö|Title of the choice.|
-|`parameters.choices.value`|string|512 characters|Γ£ö|Value of the choice.|
+|`parameters.choices.title`|string|128 characters|✔️|Title of the choice.|
+|`parameters.choices.value`|string|512 characters|✔️|Value of the choice.|
## permissions
Provide your Azure Active Directory App ID and Microsoft Graph information to he
|Name| Type| Maximum size | Required | Description| ||||||
-|`id`|string|36 characters|Γ£ö|Azure AD application ID of the app. This ID must be a GUID.|
-|`resource`|string|2048 characters|Γ£ö|Resource URL of app for acquiring auth token for SSO. </br> **NOTE:** If you are not using SSO, ensure that you enter a dummy string value in this field to your app manifest, for example, <https://notapplicable> to avoid an error response. |
+|`id`|string|36 characters|✔️|Azure AD application ID of the app. This ID must be a GUID.|
+|`resource`|string|2048 characters|✔️|Resource URL of app for acquiring auth token for SSO. </br> **NOTE:** If you are not using SSO, ensure that you enter a dummy string value in this field to your app manifest, for example, <https://notapplicable> to avoid an error response. |
## graphConnector
Specify the app's Graph connector configuration. If this is present then [webApp
|Name| Type| Maximum size | Required | Description| ||||||
-|`notificationUrl`|string|2048 characters|Γ£ö|The url where Graph-connector notifications for the application should be sent.|
+|`notificationUrl`|string|2048 characters|✔️|The url where Graph-connector notifications for the application should be sent.|
## showLoadingIndicator
Define the properties your app uses to post a user activity feed.
|Name| Type| Maximum size | Required | Description| ||||||
-|`type`|string|32 characters|Γ£ö|The notification type. *See below*.|
-|`description`|string|128 characters|Γ£ö|A brief description of the notification. *See below*.|
-|`templateText`|string|128 characters|Γ£ö|Ex: "{actor} created task {taskId} for you"|
+|`type`|string|32 characters|✔️|The notification type. *See below*.|
+|`description`|string|128 characters|✔️|A brief description of the notification. *See below*.|
+|`templateText`|string|128 characters|✔️|Ex: "{actor} created task {taskId} for you"|
```json {
Specifies the SaaS offer associated with your app.
|Name| Type|Maximum size|Required|Description| ||||||
-|`offerId`| string | 2,048 characters | Γ£ö | A unique identifier that includes your Publisher ID and Offer ID, which you can find in [Partner Center](https://partner.microsoft.com/dashboard). You must format the string as `publisherId.offerId`.|
+|`offerId`| string | 2,048 characters | ✔️ | A unique identifier that includes your Publisher ID and Offer ID, which you can find in [Partner Center](https://partner.microsoft.com/dashboard). You must format the string as `publisherId.offerId`.|
## meetingExtensionDefinition
Specify meeting extension definition. For more information, see [custom Together
|Name| Type|Maximum size|Required |Description| ||||||
-|`id`|||Γ£ö| The unique identifier for the scene. This id must be a GUID. |
-|`name`| string | 128 characters |Γ£ö| The name of the scene. |
-|`file`|||Γ£ö| The relative file path to the scenes' metadata json file. |
-|`preview`|||Γ£ö| The relative file path to the scenes' PNG preview icon. |
-|`maxAudience`| integer | 50 |Γ£ö| The maximum number of audiences supported in the scene. |
-|`seatsReservedForOrganizersOrPresenters`| integer | 50 |Γ£ö| The number of seats reserved for organizers or presenters.|
+|`id`|||✔️| The unique identifier for the scene. This id must be a GUID. |
+|`name`| string | 128 characters |✔️| The name of the scene. |
+|`file`|||✔️| The relative file path to the scenes' metadata json file. |
+|`preview`|||✔️| The relative file path to the scenes' PNG preview icon. |
+|`maxAudience`| integer | 50 |✔️| The maximum number of audiences supported in the scene. |
+|`seatsReservedForOrganizersOrPresenters`| integer | 50 |✔️| The number of seats reserved for organizers or presenters.|
## authorization
Specify and consolidate authorization related information for the app.
|Name| Type|Maximum size|Required |Description| ||||||
-|`type`|string||Γ£ö| The type of the resource-specific permission. Options: `Application` and `Delegated`.|
-|`name`|string|128 characters|Γ£ö|The name of the resource-specific permission. For more information, see [Resource-specific application permissions](#resource-specific-application-permissions) and [Resource-specific delegated permissions](#resource-specific-delegated-permissions)|
+|`type`|string||✔️| The type of the resource-specific permission. Options: `Application` and `Delegated`.|
+|`name`|string|128 characters|✔️|The name of the resource-specific permission. For more information, see [Resource-specific application permissions](#resource-specific-application-permissions) and [Resource-specific delegated permissions](#resource-specific-delegated-permissions)|
#### Resource-specific application permissions
platform Team Chat Member Api Changes https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/team-chat-member-api-changes.md
Title: Bot API changes for team and chat members
-description: Describes upcoming and in-progress changes to the Bot APIs used for retrieving members of teams and chats
-keywords: bot framework apis team members roster
+description: In this module, learn upcoming and in-progress changes to the Bot APIs used for retrieving members of teams and chats
ms.localizationpriority: medium
platform Teams Contributor Reference https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/teams-contributor-reference.md
Title: Contribute to Teams documentation
-description: steps for creating and publishing Teams documentation
+description: Learn steps for creating and publishing Teams documentation
ms.localizationpriority: medium
platform App Templates https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/app-templates.md
Title: Microsoft Teams app templates
+ Title: App templates for Microsoft Teams
description: Learn how to use app templates for Microsoft Teams platform with detailed instructions for deploying and installing an app. ms.localizationpriority: medium
platform Integrate Web Apps Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/integrate-web-apps-overview.md
For effective integration, ensure to have a better understanding of the followin
Low code platforms provide an intuitive approach to software development and require little or no coding to build applications and processes. You can create custom apps easily with low code platforms. These platforms consist of a visual interface, connectors to back end services, and a built-in app lifecycle management system to build, debug, deploy, and maintain applications. Microsoft provides the following innovative gateways to rapidly build Teams-compatible apps using low code attributes:
-* Microsoft Power platform
-* Microsoft Teams app templates
+* Microsoft Power platform.
+* Microsoft Teams app templates.
## Microsoft Power platform
platform Tabs Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/design/tabs-mobile.md
Title: Tabs on mobile
-description: Learn about implementing tabs on Microsoft Teams mobile, their authentication, low bandwidth connection, testing on mobile clients, distribution, and more.
+description: In this module, learn about implementing tabs on Microsoft Teams mobile, their authentication, low bandwidth connection, testing on mobile clients, distribution, and more.
ms.localizationpriority: medium
-keywords: app mobile tab channel group authentication distribution
# Tabs on mobile
platform Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/design/tabs.md
ms.localizationpriority: high
-keywords: UI kit manage tab set-up single-sign-on sso deep linking role-based view thread discussion
# Design your tab for Microsoft Teams
platform Access Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/access-teams-context.md
Title: Get context for your tab
-description: Describes how to get user context to your tabs
+description: In this module, learn how to get user context to your tabs, user context and Access context information
ms.localizationpriority: medium
-keywords: teams tabs user context
# Get context for your tab
platform Auth Flow Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-flow-tab.md
Title: Enable authentication using third-party OAuth provider
-description: Describes authentication flow in tabs, OAuth by Azure AD, and provides code sample
+description: In this article, learn Teams authentication flow in tabs, third party OAuth provider, OAuth by Azure AD, and auth code samples.
ms.localizationpriority: high
-keywords: teams authentication flow tabs third party OAuth provider
# Enable authentication using third-party OAuth provider
platform Auth Oauth Provider https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-oauth-provider.md
Title: Use external OAuth providers
-description: Describes authentication using external OAuth providers
+description: In this module, learn how to do authentication using external OAuth providers and how to add it to external browser
ms.localizationpriority: high
-keywords: teams authentication using external OAuth provider
# Use external OAuth providers
platform Auth Silent Aad https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-silent-aad.md
Title: Silent authentication
-description: Describes silent authentication, Single-sign-on, Azure AD for tabs
+description: In this module, learn how to do silent authentication, Single-sign-on, and Azure AD for tabs and how it works
ms.localizationpriority: medium
-keywords: teams authentication SSO silent Azure AD tab
# Silent authentication
platform Auth Tab Aad https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/auth-tab-aad.md
Title: Configure third party OAuth authentication
-description: Describes authentication in Teams and how to use it in tabs
+description: In this article, learn Teams authentication tabs Microsoft Azure AD, authentication in Teams and how to use it in tabs.
ms.localizationpriority: medium
-keywords: teams authentication tabs Microsoft Azure Active Directory (Azure AD)
# Configure third party OAuth authentication
platform Build Adaptive Card Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/build-adaptive-card-tabs.md
Title: Build Adaptive Card Tabs
-description: Learn about building tabs using Adaptive Cards with Code examples, including invoking activities, understanding task module workflow, and authentication.
+description: In this module, learn about building tabs using Adaptive Cards with Code examples, including invoking activities, understanding task module workflow, and authentication.
ms.localizationpriority: high
-keywords: adaptive card personal app authentication data flow
# Build tabs with Adaptive Cards
platform Conversational Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/conversational-tabs.md
Title: Create conversational tabs
-description: Learn to create conversational subentity chat for your channel tabs, to manage conversations using code samples
-keywords: teams tabs channel configurable
+description: In this module, learn to create conversational subentity chat for your channel tabs, to manage conversations using code samples
ms.localizationpriority: medium
platform Create Channel Group Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-channel-group-tab.md
Title: Create a channel or group tab
-description: A quickstart guide to creating a channel and group tab with the Yeoman Generator for Microsoft Teams, including reviewing source code with code examples.
+description: In this module, learn how to create a channel and group tab with the Yeoman Generator for Microsoft Teams, including reviewing source code with code examples.
ms.localizationpriority: medium
platform Create Personal Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-personal-tab.md
Title: Create a personal tab
-description: A quickstart guide to creating a personal tab with the Yeoman Generator, ASP.NET Core, or ASP.NET Core MVC for Microsoft Teams using Node.js, and updating app manifest.
+description: In this module, learn how to create a personal tab with the Yeoman Generator, ASP.NET Core, or ASP.NET Core MVC for Microsoft Teams using Node.js, and updating app manifest.
ms.localizationpriority: high
-keywords: yeoman ASP.NET MVC package appmanifest conversation domain permission store
zone_pivot_groups: teams-app-environment
platform Configuration Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/configuration-page.md
Title: Create a configuration page
-description: Learn how to create a configuration page to configure a channel or group chat for settings, such as, getting context data, inserting placeholders, and authentication using code examples.
-keywords: teams tabs group channel configurable
+description: In this module, learn how to create a configuration page to configure a channel or group chat for settings, such as, getting context data, and more
ms.localizationpriority: medium
platform Content Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/content-page.md
Title: Create a content page
-description: how to create a content page
-keywords: teams tabs group channel configurable static
+description: In this module, learn how to create a content page for your tab and tab content and design guidelines
ms.localizationpriority: medium
platform Removal Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/removal-page.md
Title: Create a tab removal page
-description: How to create a tab removal page
-keywords: teams tabs group channel configurable remove delete
+description: In this module, learn how to create a tab removal page and how to enable your tab to be reconfigured after installation
ms.localizationpriority: medium
platform Developer Tools https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/developer-tools.md
Title: DevTools for Microsoft Teams tabs
-description: Describes how to get to the DevTools when using the Microsoft Teams Desktop Client and debugging
+description: In this module, learn how to get to the DevTools when using the Microsoft Teams Desktop Client and debugging
ms.localizationpriority: medium
-keywords: devtools debug mobile chrome desktop client developer tools tab
# DevTools for Microsoft Teams tabs
platform Tab Requirements https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/tab-requirements.md
Title: Prerequisites
-description: Every tab in Microsoft Teams must adhere to these requirements.
-keywords: teams tabs group channel configurable
+description: In this module, learn the requirements for every tab in Microsoft Teams must adhere and Tools to build tabs.
ms.localizationpriority: medium
platform Using Teams Client Sdk https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/using-teams-client-sdk.md
Title: Building tabs and other hosted experiences with the Microsoft Teams JavaScript client SDK
-description: Overview of the Microsoft Teams JavaScript client SDK, which can help you build app experiences hosted in an <iframe> in Teams, Office, and Outlook.
+description: In this module, Learn Microsoft Teams JavaScript client SDK, which can help you build app experiences hosted in an <iframe> in Teams, Office, and Outlook.
ms.localizationpriority: high
-keywords: teams tabs group channel configurable static SDK JavaScript personal m365
# Building tabs and other hosted experiences with the Microsoft Teams JavaScript client SDK
platform What Are Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/what-are-tabs.md
Title: Microsoft Teams tabs
-description: An overview of custom tabs on the Teams platform
+description: In this module, learn to build a custom tabs on the Teams platform, Tab features and Tabs user scenarios
ms.localizationpriority: high
platform Cards And Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards-and-task-modules.md
Title: Cards and task modules
-description: Learn about types of cards supported in bots for Teams, such as, Adaptive cards, Hero card, Thumbnail card, and more. Learn about card actions and invoking task modules in channels, bots, or deep links.
+description: Learn about types of cards supported in bots for Teams, such as, Adaptive, Hero and Thumbnail card, and its actions.
ms.localizationpriority: medium
You can format card text using a subset of XML or HTML formatting or Markdown de
You can add and respond to card actions that:
-* Open a URL
-* Send messages and payload to the bot
-* Initiate OAuth flow
+* Open a URL.
+* Send messages and payload to the bot.
+* Initiate OAuth flow.
You can provide [dynamic search](~/task-modules-and-cards/cards/dynamic-search.md) experience within a large dataset using type ahead control in Adaptive Cards and perform type-ahead static search within limited number of choices. Invoke the task modules in channel or personal tabs, bots, or deep links. Your user's experience for any workflows that requires data input can be improved by adding a task module to the user's tab. You can invoke task modules from Teams bots using buttons on Adaptive Cards and Bot Framework cards.
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md
Title: Overview of Universal Actions for Adaptive Cards
-description: A quick overview of Universal Actions for Adaptive Cards, such as user-specific views, sequential workflow support, and more for desktop and mobile environments
+description: Learn Universal Actions for Adaptive Cards, such as user-specific views, sequential workflow support, and more for desktop and mobile environments
ms.localizationpriority: medium
Now, you can understand how Adaptive Cards can be transformed with the new Unive
Adaptive Cards are a combination of content, such as text and graphics, and actions that can be performed by a user. For more information, see [Adaptive Cards](http://adaptivecards.io/). The new Universal Actions for Adaptive Cards enable a common handling of the Adaptive Card actions across platforms and applications. For more information, see [Universal Action Model](/adaptive-cards/authoring-cards/universal-action-model).
-You can get started by updating scenarios using the [quick start guide](Work-with-universal-actions-for-adaptive-cards.md) and leverage Universal Actions.
+You can get started by updating scenarios using the [quick start guide].(Work-with-universal-actions-for-adaptive-cards.md) and leverage Universal Actions.
## Next step
You can get started by updating scenarios using the [quick start guide](Work-wit
* [What are bots](~/bots/what-are-bots.md) * [Adaptive Cards overview](~/task-modules-and-cards/what-are-cards.md) * [Adaptive Cards @ Microsoft Build 2020](https://youtu.be/hEBhwB72Qn4?t=1393)
-* [Adaptive Cards @ Ignite 2020](https://techcommunity.microsoft.com/t5/video-hub/elevate-user-experiences-with-teams-and-adaptive-cards/m-p/1689460)
+* [Adaptive Cards @ Ignite 2020](https://techcommunity.microsoft.com/t5/video-hub/elevate-user-experiences-with-teams-and-adaptive-cards/m-p/1689460).
platform Sequential Workflows https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Sequential-Workflows.md
Title: Sequential Workflows
-description: Learn about Sequential Workflows for Adaptive cards using Universal Actions with Code samples
+description: In this module, learn about Sequential Workflows for Adaptive cards using Universal Actions with Code samples
ms.localizationpriority: medium
platform Up To Date Views https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Up-To-Date-Views.md
Title: Up to date views
-description: Learn about up to date views using Universal Bot with Code samples
+description: In this module, learn about up to date cards views using Universal Bot with Code samples in Microsoft Teams
ms.localizationpriority: medium
-keywords: approval base card reject adaptive
# Up to date cards
platform User Specific Views https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/User-Specific-Views.md
Title: User Specific Views
-description: Learn about User Specific Views using Universal Actions with Code Sample
+description: In this module, learn about User Specific Views using Universal Actions with Code Sample and adaptiveCard/action invoke response card
ms.localizationpriority: medium
ms.localizationpriority: medium
# User Specific Views
-Earlier if Adaptive Cards were sent in a Teams conversation, all users see the exact same card content. With the introduction of the Universal Actions model and `refresh` for Adaptive Cards, bot developers can now provide User Specific Views of Adaptive Cards to users. The same Adaptive Card can now refresh to a User Specific Adaptive Card. Maximum 60 different users can see a different version of the card with additional information or actions. The Adaptive Card provides powerful scenarios like approvals, poll creator controls, ticketing, incident management, and project management cards.
+Earlier if Adaptive Cards were sent in a Teams conversation, all users would see the exact same card content. With the introduction of the Universal Actions model and `refresh` for Adaptive Cards, bot developers can now provide User Specific Views of Adaptive Cards to users. The same Adaptive Card can now refresh to a User Specific Adaptive Card. The Adaptive Card provides powerful scenarios like approvals, poll creator controls, ticketing, incident management, and project management cards.
> [!NOTE]
-> User Specific View is supported for Adaptive Cards sent by a bot and is dependent on Universal Actions.
+>
+> * User Specific View is supported for Adaptive Cards sent by a bot and is dependent on Universal Actions.
+> * Maximum 60 different users can see a different version of the card with additional information or actions.
For example, Megan, a safety inspector at Contoso, wants to create an incident and assign it to Alex. Megan also wants everyone in the team to be aware about the incident. Megan uses Contoso incident reporting message extension powered by Universal Actions for Adaptive Cards.
const cardRes = {
***
-Card design guidelines to keep in mind while designing User Specific Views:
+The following list provides card design guidelines for User Specific Views:
-* You can create a maximum of **60 User Specific Views** for a particular card sent to a chat or channel by specifying their `userIds` in the `refresh` section.
-* **Base Card:** The base version of the card that the bot developer sends to the chat. The base version is the version of the Adaptive Card for all users who are not specified in the `userIds` section.
-* A message update can be used to update the base card and simultaneously refresh the User Specific Card. Opening the chat or channel also refreshes the card for users with refresh enabled.
-* For scenarios with larger groups where users switch to a view on action, which needs dynamic updates for responders, you can keep adding up to 60 users to the `userIds` list. You can remove the first responder from the list when the 61st user responds. For the users who get removed from the `userIds` list, you can provide a manual refresh button or use the refresh button in the message options menu to get the latest result.
-* Give a prompt to users to get a User Specific View, where they see only a particular view of the card or some actions.
+* Refresh behavior: You can create a maximum of 60 User Specific Views for a particular card sent to a conversation by specifying their `userIds` in the `Refresh` property.
+
+ * If the `userIds` field is not specified in the `Refresh` property, Teams client can automatically trigger refresh for all users when there are less than or equal to 60 members in the conversation.
+
+ * For users to manually trigger card refresh, they can select **Refresh** from the message options menu. This happens to all users when there are less than 60 members in a conversation, or to the set of users not specified in the `userIds` list when there are all or less than 60 users in a conversation.
+
+* Base card: The bot sends the message, which embeds with the base version of the card. All members of the conversation can view the same. The bot subsequently fetches the User Specific Card through refresh for the users specified in the `userIds` section.
+
+* Refresh timeout: Teams client triggers a refresh in two ways, either through **Refresh** or by selecting **Execute**. The refresh triggers only if the card from the last invoke is older than a minute. You can control the refresh behavior by adding a timestamp to the data bag and checking it before sending the refreshed card.
+
+* A message update can be used to update the base card and simultaneously refresh the User Specific Card. Opening the chat or channel also refreshes the card for users with **Refresh** enabled.
+
+* For scenarios with larger groups where users switch to a view on action, which needs dynamic updates for responders, you can keep adding up to 60 users to the `userIds` list. You can remove the first responder from the list when the 61st user responds. For the users who get removed from the `userIds` list, you can provide a manual **Refresh** to get the latest result.
+
+* Give prompt to the users to get a User Specific View, where they see only a particular view of the card or some actions.
+
+> [!NOTE]
+> The User Specific Card returned by the bot is sent only to the specific client that requested for it. For example, if a user switches to a different client, such as from desktop to mobile, then another invoke event is triggered to fetch the refreshed card.
## Code sample
platform Work With Universal Actions For Adaptive Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Work-with-Universal-Actions-for-Adaptive-Cards.md
Title: Work with Universal Actions for Adaptive Cards
-description: Learn to work with the Universal Actions for Adaptive Cards, including Schema for UniversalActions for Adaptive cards, Refresh model, and backward compatibility using Code samples.
+description: Learn to work with the Universal Actions for Adaptive Cards, including Schema for UniversalActions for Adaptive cards, Refresh model, and backward compatibility
ms.localizationpriority: medium
Universal Actions for Adaptive Cards provide a way to implement Adaptive Card ba
2. Add a `refresh` clause to your Adaptive Card, if you want to use the automatic refresh model or if your scenario requires User Specific Views. >[!NOTE]
- > Specify the `userIds` property to identify, which users get automatic updates.
+ > Specify the `userIds` property to identify which users get automatic updates.
3. Handle `adaptiveCard/action` invoke requests in your bot. 4. Use the invoke request's context to respond back with cards that are created for a user.
The following are the features of UserIds in refresh:
* UserIds is an array of user MRIs, which is part of the `refresh` property in Adaptive Cards.
-* If the `userIds` list property is specified as `userIds: []` in the refresh section of the card, the card is not automatically refreshed. Instead, a **Refresh Card** option is displayed to the user in the triple dot menu in web or desktop and in the long press context menu in mobile, that is, Android or iOS to manually refresh the card.
+* If the `userIds` list property is specified as `userIds: []` in the refresh section of the card, the card is not automatically refreshed. Instead, a **Refresh Card** option is displayed to the user in the triple dot menu in Teams web client or desktop and in the long press context menu in Teams mobile, that is, Android or iOS to manually refresh the card. Alternatively, you may choose to skip `userIds` in the refresh property altogether in case the scenario involves <=60 members in Teams group chats or channels. The Teams client automatically invokes refresh calls for all the users if the group or channel has <=60 users.
* UserIds property is added because channels in Teams can include a large number of members. If all members are viewing the channel at the same time, an unconditional automatic refresh results in many concurrent calls to the bot. The `userIds` property must always be included to identify which users must get an automatic refresh with a maximum of *60 (sixty) user MRIs*.
For more information, see [backward compatibility on Teams](/adaptive-cards/auth
|Sample name | Description | .NETCore | Node.js | |-|--|--|--| | Teams catering bot | Create a bot that accepts food order using Adaptive Cards. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-teams-catering/csharp)| Not yet available |
-| Sequential Workflows Adaptive Cards | Demonstrate how to implement Sequential Workflows, User Specific Views, and up to date Adaptive Cards in bots. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/nodejs) |
+| Sequential Workflows Adaptive Cards | Demonstrate how to implement Sequential Workflows, User Specific Views, and up to date Adaptive Cards in bots. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/nodejs) .|
## See also
platform Cards Actions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-actions.md
Title: Add card actions in a bot
-description: Describes card actions in Microsoft Teams and how to use them in your bots
+description: In this module, learn what are card actions in Microsoft Teams, action types and how to use them in your bots
ms.localizationpriority: medium
-keywords: teams bots cards actions
# Card actions
platform Cards Format https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-format.md
Title: Text formatting in cards
-description: Describes card text formatting in Microsoft Teams
-keywords: teams bots cards format
+description: In this module, learn what is card text formatting in Microsoft Teams and format cards with markdown.
ms.localizationpriority: high Last updated 06/25/2021
platform Cards Reference https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-reference.md
Title: Types of cards
-description: Describes all the cards and card actions available to bots in Teams
+description: In this module, learn what are cards and card actions available to bots in Teams and create a hero, thumbnail and adaptive cards
ms.localizationpriority: high
-keywords: bots cards reference
You can identify and use different types of cards based on your application requ
| Card type | Bots | Message extension previews | Message extension results | Task modules | Outgoing Webhooks | Incoming Webhooks | Office 365 Connectors | | | | | | | | | |
-| Adaptive Card | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£ö | Γ£ö | Γ£û |
-| Office 365 Connector card | Γ£ö | Γ£û | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£ö |
-| Hero card | Γ£ö | Γ£ö | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£û |
-| Thumbnail card | Γ£ö | Γ£ö | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£û |
-| List card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£ö | Γ£ö | Γ£û |
-| Receipt card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£û | Γ£ö | Γ£û |
-| Signin card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£û | Γ£û | Γ£û |
+| Adaptive Card | ✔️ | ❌ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
+| Office 365 Connector card | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ✔️ | ✔️ |
+| Hero card | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | ❌ |
+| Thumbnail card | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ✔️ | ❌ |
+| List card | ✔️ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ |
+| Receipt card | ✔️ | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ |
+| Signin card | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
> [!NOTE] > For Adaptive Cards in Incoming Webhooks, all native Adaptive Card schema elements, except `Action.Submit`, are fully supported. The supported actions are [**Action.OpenURL**](https://adaptivecards.io/explorer/Action.OpenUrl.html), [**Action.ShowCard**](https://adaptivecards.io/explorer/Action.ShowCard.html), [**Action.ToggleVisibility**](https://adaptivecards.io/explorer/Action.ToggleVisibility.html), and [**Action.Execute**](/adaptive-cards/authoring-cards/universal-action-model#actionexecute).
The following table provides the features that support Adaptive Cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£û | Γ£ö |
+| ✔️ | ✔️ | ❌ | ✔️ |
> [!NOTE] >
The following table provides the features that support hero cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£û | Γ£ö |
+| ✔️ | ✔️ | ❌ | ✔️ |
### Properties of a hero card
The following table provides the features that support list cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£û | Γ£û |Γ£ö |
+| ✔️ | ❌ | ❌ |✔️ |
### Properties of a list card
The following table provides the features that support Office 365 Connector card
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£ö | Γ£û |
+| ✔️ | ✔️ | ✔️ | ❌ |
### Properties of the Office 365 Connector card
The following table provides the features that support receipt cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£û | Γ£ö |
+| ✔️ | ✔️ | ❌ | ✔️ |
### Example of a receipt card
The following table provides the features that support signin cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£û | Γ£û | Γ£ö |
+| ✔️ | ❌ | ❌ | ✔️ |
### Additional information on signin cards
The following table provides the features that support thumbnail cards:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£û | Γ£ö |
+| ✔️ | ✔️ | ❌ | ✔️ |
:::image type="content" source="../../assets/images/Cards/thumbnail.png" alt-text="thumbnail card":::
The following table provides the features that support carousel collections:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£û | Γ£û | Γ£ö |
+| ✔️ | ❌ | ❌ | ✔️ |
> [!NOTE] > A carousel can display a maximum of ten cards per message.
The following table provides the features that support list collections:
| Bots in Teams | Message extensions | Connectors | Bot Framework | | | | | |
-| Γ£ö | Γ£ö | Γ£û | Γ£ö |
+| ✔️ | ✔️ | ❌ | ✔️ |
#### Example of a list collection
platform Design Effective Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/design-effective-cards.md
Title: Designing Adaptive Cards for your app
-description: Learn how to design Adaptive Cards for Teams and get the Microsoft Teams UI Kit.
+description: In this module, learn how to design Adaptive Cards for your Teams app and get the Microsoft Teams UI Kit.
ms.localizationpriority: high
Here's the code for implementing the design example you should follow.
# [Design](#tab/design)
-When the the size of something you're displaying doesn't need to change, set you columns to a specific pixel width. This example shows the left column sized at 50 pixels, while the descriptions next to the thumbnails stretch the length of the card
+When the the size of something you're displaying doesn't need to change, set you columns to a specific pixel width. This example shows the left column sized at 50 pixels, while the descriptions next to the thumbnails stretch the length of the card.
:::image type="content" source="~/assets/images/adaptive-cards/width-auto-do.png" alt-text="Image shows how to set column width in Adaptive Cards.":::
platform Dynamic Search https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/dynamic-search.md
Title: Typeahead search in Adaptive Cards
-description: Describes typeahead search with Input.ChoiceSet control in Adaptive Cards
+description: In this module, learn what is typeahead search in adaptive cards with Input.ChoiceSet control and implement typeahead search
ms.localizationpriority: medium
platform People Picker https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/people-picker.md
Title: People Picker in Adaptive Cards
-description: Describes how to use the People Picker control in Adaptive Cards
+description: In this module, learn how to use the People Picker control in Adaptive Cards, its scenarios and implement people picker.
localization_priority: Medium
-keywords: Adaptive Cards People Picker
platform Design Teams Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/task-modules/design-teams-task-modules.md
Title: Designing task modules
-description: Learn how to design task modules for Teams apps and get the Microsoft Teams UI Kit.
+description: In this module, learn how to design task modules for your Teams apps and get the Microsoft Teams UI Kit.
ms.localizationpriority: high
platform Task Modules Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/task-modules/task-modules-bots.md
Title: Use Task Modules in Microsoft Teams bots
-description: How to use task modules with Microsoft Teams bots, including Bot Framework cards, Adaptive cards, and deep links.
+description: Learn how to use task modules with Microsoft Teams bots, including Bot Framework cards, Adaptive cards, and deep links.
ms.localizationpriority: medium
-keywords: task modules teams bots deep links adaptive card
# Use task modules from bots
platform Task Modules Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/task-modules/task-modules-tabs.md
Title: Use Task Modules in Microsoft Teams tabs
-description: Explains how to invoke task modules from Teams tabs and submitting its result using the Microsoft Teams client SDK. It includes code samples.
+description: Learn how to invoke task modules from Teams tabs and submitting its result using the Microsoft Teams client SDK. It includes code samples.
ms.localizationpriority: medium
-keywords: task modules teams tabs client sdk
# Use task modules in tabs
platform What Are Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/what-are-cards.md
Title: Cards
-description: Describes cards and how they're used in bots, connectors, and message extensions
+description: In this module, learn what are cards and how they're used in bots, connectors, and message extensions
ms.localizationpriority: high
-keywords: connectors bots cards messaging
platform What Are Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/what-are-task-modules.md
Title: Task modules
-description: Add modal popup experiences to collect or display information to your users from your Microsoft Teams apps
+description: In this module, learn how to add modal popup experiences to collect or display information to your users from your Microsoft Teams apps
ms.localizationpriority: medium
platform Teamsfx CLI https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-CLI.md
Title: TeamsFx Command Line Interface
-description: Describes TeamsFx Command Line Interface
+description: In this module, learn TeamsFx library, TeamsFx Command Line Interface, supported commands and its scenarios
ms.localizationpriority: medium
The following table lists the cloud service accounts, such as Azure and Microsof
| Command | Description | |:- |:-|
-| `teamsfx account login <service>` | Log in to the selected cloud service. Service options are M365 or Azure. |
-| `teamsfx account logout <service>` | log out of selected cloud service. Service options are M365 or Azure. |
+| `teamsfx account login <service>` | Log in to the selected cloud service. Service options are Microsoft 365 or Azure. |
+| `teamsfx account logout <service>` | log out of selected cloud service. Service options are Microsoft 365 or Azure. |
| `teamsfx account set --subscription` | Update account settings to set a subscription ID. | ## `teamsfx env`
The following list provides required permissions for `TeamsFx` projects:
teamsfx new --interactive false --app-name newapp --host-type azure ```
- * To login to Microsoft 365 account and Azure account:
+ * To log in to Microsoft 365 account and Azure account:
```bash teamsfx account login azure
The following list provides required permissions for `TeamsFx` projects:
* As a Project Collaborator: * Clone the project from GitHub.
- * Login to Microsoft 365 account. Ensure that the same Microsoft 365 account is added:
+ * Log in to Microsoft 365 account. Ensure that the same Microsoft 365 account is added:
```bash teamsfx account login Microsoft 365 ```
- * Login to Azure account with contributor permission for all Azure resources.
+ * Log in to Azure account with contributor permission for all Azure resources.
```bash teamsfx account login azure
platform Teamsfx SDK https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-SDK.md
Title: TeamsFx SDK
-description: About TeamsFx SDK
+description: In this module, learn about TeamsFx SDK, core concepts and code structure, advanced Customization and scenarios
ms.localizationpriority: medium
platform Teamsfx Collaboration https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-collaboration.md
Title: Collaborate on TeamsFx Project using Teams Toolkit
-description: Collaborate on TeamsFx Project using Teams Toolkit
+description: In this article, learn how to collaborate on TeamsFx Project using Teams Toolkit and collaborate with other developers.
ms.localizationpriority: medium
platform Teamsfx Multi Env https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-multi-env.md
Title: TeamsFX multiple environments in Teams Toolkit
-description: About TeamsFX multi environment
+description: In this module, learn about TeamsFX multi environment such as, create a new environment, select target environment and more
ms.localizationpriority: medium
platform Teamsfx Preview And Customize App Manifest https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-preview-and-customize-app-manifest.md
Title: Teams App Manifest in Teams Toolkit
-description: Teams App Manifest
+description: In this module, learn how to edit, preview and customize Teams App Manifest in the different environment.
ms.localizationpriority: medium
You can preview manifest file in local and remote environments.
* [Preview manifest file in local environment](#preview-manifest-file-in-local-environment) * [Preview manifest file in remote environment](#preview-manifest-file-in-remote-environment)
-### Preview manifest file in local environment
+## Preview manifest file in local environment
To preview manifest file in local environment, you can press **F5** to run local debug. It generates default local settings for you, then the app package and preview manifest builds under `build/appPackage` folder.
The preview local appears as shown in the image:
:::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/preview-23.png" alt-text="Preview":::
-### Preview manifest file in remote environment
+## Preview manifest file in remote environment
**To preview manifest file in remote environment**
You can also trigger **Teams: Update manifest to Teams platform** from the comma
> [!NOTE] > The change updates to Dev Portal. Any manual updates in Dev Portal are overwritten.
-If the manifest file is outdated due to configuration file change or template change, select any one of the following action:
+If the manifest file is outdated due to configuration file change or template change, select any one of the following actions:
* **Preview only**: Local manifest file is overwritten according to current configuration. * **Preview and update**: Local manifest file is overwritten according to current configuration and also updated to Teams platform.
The following list provides supported placeholders in `manifest.template.json`:
} ```
-2. You can navigate to configuration file by selecting any one of the config placeholder **Go to config file** or **View the state file** in `manifest.template.json`.
+2. You can navigate to configuration file by selecting any one of the config placeholders **Go to config file** or **View the state file** in `manifest.template.json`.
### Validate manifest
platform Accounts https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/accounts.md
Title: Prepare accounts to build Teams apps
-description: Prepare accounts to build Teams apps
+description: In this module, Learn how to prepare accounts to build Teams apps with Microsoft 365 account and developer program. Azure account to host backend resources
ms.localizationpriority: high
platform Add API Connection https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-API-connection.md
The base command of this feature is `teamsfx add api-connection [authentication
2. Add `@microsoft/teamsfx` package to `package.json`. The package provides support for the common API authentication methods.
-3. Add environment variables to `.env.teamsfx.local`. They are the configurations for the selected authentication type. The generated code reads values from the environment variables.
+3. Add environment variables to `.env.teamsfx.local`. They're the configurations for the selected authentication type. The generated code reads values from the environment variables.
## Test API connection in local environment
platform Add Capability https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-capability.md
Title: Add Capabilities to Your Teams apps
-description: Describes Add Capabilities of Teams Toolkit
+description: In this module, learn how to add Capabilities of Teams Toolkit, advantages, limitations and capabilities
ms.localizationpriority: medium
platform Add Resource https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-resource.md
Title: Add Resources to Teams apps
-description: Describes Add Resources of Teams Toolkit
+description: In this module, learn how to add Resources of Teams Toolkit, advantages, limitations and capabilities
ms.localizationpriority: medium
platform Add Single Sign On https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-single-sign-on.md
Title: Add single sign-on to your Teams apps
-description: Describes Add single sign on of Teams Toolkit
+description: In this module, learn how to add single sign-on (SSO) of Teams Toolkit, enable SSO support, update your application to use SSO
ms.localizationpriority: medium
Last updated 05/20/2022
Microsoft Teams provides single sign-on function for application to obtain signed-in Teams user token to access Microsoft Graph and other APIs. Teams Toolkit facilitates the interaction by abstracting some of the Azure AD flows and integrations behind some simple APIs. This enables you to add single sign-on (SSO) features easily to your Teams application.
-For applications that interact with the user in a chat, a Team, or a channel, SSO manifests as an Adaptive Card which the user can interact with to invoke the Azure AD consent flow.
+For applications that interact with the user in a chat, a Team, or a channel, SSO manifests as an Adaptive Card, which the user can interact with to invoke the Azure AD consent flow.
## Enable SSO support
Teams Toolkit helps you to add SSO to the following Teams capabilities:
### Add SSO using Visual Studio Code
-The following steps helps you to add SSO using Teams Toolkit in Visual Studio Code
+The following steps help you to add SSO using Teams Toolkit in Visual Studio Code
1. Open **Microsoft Visual Studio Code**. 2. Select Teams Toolkit :::image type="content" source="../assets/images/teams-toolkit-v2/add-sso/teams-toolkit-sidebar-icon.png" alt-text="sso add sidebar"::: from left navigation bar.
The following table lists the changes Teams Toolkit makes to your project:
## Update your application to use SSO
-The following steps helps you to enable SSO in your application.
+The following steps help you to enable SSO in your application.
> [!NOTE] > These changes are based on the templates we scaffold.
The following steps helps you to enable SSO in your application.
> [!NOTE] > Currently, these instructions applies to `command bot`. If you start with a `bot`, see [bot-sso sample](https://github.com/OfficeDev/TeamsFx-Samples/tree/v2/bot-sso).
-The following steps helps you to add a new command, after you add SSO in your project:
+The following steps help you to add a new command, after you add SSO in your project:
1. Create a new file (`todo.ts` or `todo.js`) under `bot/src/` and add your own business logic to call Graph API:
To view your Azure AD application in Azure Portal, see [View Azure AD applicatio
## SSO authentication concepts
-The following concepts helps you for SSO authentication:
+The following concepts help you for SSO authentication:
### Working of SSO in Teams
platform Create New Project https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/create-new-project.md
Title: Create a new Teams app using Teams Toolkit
-description: Create new Teams app using Teams Toolkit
+description: In this module, learn how to create a new Teams app using Teams Toolkit, create a new Teams app using view samples
ms.localizationpriority: high
To create a new Teams app using Teams Toolkit, you can select from one of the fo
* [Create a new Teams app](create-new-project.md#create-a-new-teams-app) * [View samples](create-new-project.md#create-a-new-teams-app-using-view-samples)
-### Create a new Teams app
+## Create a new Teams app
1. Open Visual Studio Code. 1. Select the Teams Toolkit :::image type="icon" source="../assets/images/teams-toolkit-v2/teams-toolkit-sidebar-icon.PNG" border="true"::: icon in the Visual Studio Code sidebar.
To create a new Teams app using Teams Toolkit, you can select from one of the fo
:::image type="content" source="../assets/images/teams-toolkit-v2/teams-toolkit-sidebar.png" alt-text="Teams toolkit sidebar"::: 1. You can select **Create a new Teams app** or **Start from a sample**.
-
+ :::image type="content" source="../assets/images/teams-toolkit-v2/select-create-app.png" alt-text="Create an app":::
-
-1. If you select **Create a new Teams app**, the following image displays with templates from three categories: Scenario-based Teams app, Basic Teams app, and Extended Teams apps across Microsoft 365:
+
+1. If you select **Create a new Teams app**, the following image displays with templates from three categories: Scenario-based Teams app, Basic Teams app, and Extended Teams apps across Microsoft 365:
:::image type="content" source="../assets/images/teams-toolkit-v2/teams-capabilities.png" alt-text="Capabilties for Teams app"::: 1. Select at least one option to start creating the Teams app. -
-### Create a new Teams app using view samples
+## Create a new Teams app using view samples
You can create a new app by exploring **View samples** and selecting an existing sample. The selected sample may already have some functionality, for example a to-do list with an Azure backend, or an integration with the Microsoft Graph Toolkit.
You can create a new app by exploring **View samples** and selecting an existing
:::image type="content" source="../assets/images/teams-toolkit-v2/view-samples.png" alt-text="View samples"::: The sample gallery appears as shown in the following image:
-
+ :::image type="content" source="../assets/images/teams-toolkit-v2/sample-gallery.png" alt-text="Sample gallery"::: You can explore the sample gallery as follows:
platform Debug Background Process https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-background-process.md
Title: Debug background processes
-description: Function of Visual studio code and Teams Toolkit during local debug
+description: In this module, learn function of Visual studio code and Teams Toolkit during local debug and register and configure your Teams app
ms.localizationpriority: high
Teams Toolkit checks the following prerequisites during the debug process:
| Platform | Software| | | |
- |Windows, macOs (x64), and Linux | **3.1 (recommended)**, 5.0, 6.0 |
- |macOs (arm64) |6.0 |
+ |Windows, macOS (x64), and Linux | **3.1 (recommended)**, 5.0, 6.0 |
+ |macOS (arm64) |6.0 |
* Development certificate, if the development certificate for localhost isn't installed for tab in Windows or MacOS, the Teams Toolkit prompts you to install it. * Azure Functions binding extensions defined in `api/extensions.csproj`, if Azure Functions binding extensions isn't installed, the Teams Toolkit installs Azure Functions binding extensions.
platform Debug Local https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-local.md
Title: Debug your Teams app
-description: Debug your Teams app locally in Teams Toolkit
+description: In this module, learn how to debug your Teams app locally in Teams Toolkit and key features of Teams Toolkit
ms.localizationpriority: high
When you complete local debug, you can select **Stop** or **Disconnect** from th
:::image type="content" source="../assets/images/teams-toolkit-v2/debug/stop-debug.png" alt-text="stop debugging":::
-## Debug your Teams app locally
+## Debug your app locally
The following steps help you to debug your Teams app locally:
platform Deploy https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/deploy.md
Title: Deploy to the cloud
-description: Deploy app to the cloud, Azure, or SharePoint
+description: In this module, learn how to deploy app to the cloud, Azure, or SharePoint and deploy Teams apps using Teams Toolkit
ms.localizationpriority: medium
platform Provision https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/provision.md
Title: Use Teams Toolkit to provision cloud resources
-description: Provision cloud resources
+description: In this module, learn how to do provision cloud resources using Teams Toolkit, resource creation and customize resource provision
ms.localizationpriority: medium
platform Publish https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/publish.md
Title: Publish Teams apps using Teams Toolkit
-description: publish Teams apps
+description: In this module, learn how to publish Teams apps using Teams Toolkit and publish to individual scope or sideload permission
ms.localizationpriority: medium Last updated 11/29/2021
platform Teams Toolkit Fundamentals https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/teams-toolkit-fundamentals.md
Title: Teams Toolkit Overview
-description: Overview of Teams Toolkit, Installation of Teams Toolkit, and Tour of Toolkit features
+description: In this module, learn Teams Toolkit, Installation of Teams Toolkit, and User journey of Teams Toolkit
ms.localizationpriority: medium
platform Use CICD Template https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/use-CICD-template.md
Title: Learn how to use CI/CD pipeline templates in GitHub, Azure DevOps, and Jenkins for Teams Application Developers
+ Title: CI/CD templates
-description: CI/CD templates
+description: In this module, learn how to use CI/CD pipeline templates in GitHub, Azure DevOps, and Jenkins for Teams Application DevelopersCI/CD templates
ms.localizationpriority: medium
platform Visual Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/visual-studio-overview.md
Title: Build apps with the Teams Toolkit and Visual Studio
-description: Get started building great custom apps directly within Visual Studio with the Microsoft Teams Toolkit. Learn to configure your app in Visual Studio, validate your app, and publish it from Visual Studio and Developer Portal.
-keywords: teams visual studio toolkit
+description: Learn building custom apps directly within Visual Studio with Teams Toolkit and learn to configure your app in Visual Studio, validate your app, and more
ms.localizationpriority: medium Last updated 1/13/2022
platform Add Incoming Webhook https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/add-incoming-webhook.md
Title: Create an Incoming Webhook
-description: Add Incoming Webhook to Teams app and post any external requests to Teams using it
-keywords: teams tabs outgoing webhook
+description: In this module, learn how to add Incoming Webhook to Teams app and post any external requests to Teams using it
ms.localizationpriority: high
platform Add Outgoing Webhook https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md
Title: Create an Outgoing Webhook
-description: describes how to create an Outgoing Webhook
+description: In this module, learn how to create an Outgoing Webhook in Microsoft Teams, its key features and code samples
ms.localizationpriority: high
-keywords: Teams tabs outgoing webhook actionable message verify webhook
# Create Outgoing Webhook
platform Connectors Creating https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/connectors-creating.md
Title: Create Office 365 Connectors
-description: Describes how to get started with Office 365 Connectors in Microsoft Teams
-keywords: teams Office365 connector
+description: In this module, learn how to get started with Office 365 Connectors and add connector to Teams app in Microsoft Teams
ms.localizationpriority: medium Last updated 06/16/2021
platform Connectors Using https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/how-to/connectors-using.md
Title: Create and send messages
-description: Describes how to use Office 365 Connectors in Microsoft Teams
+description: In this module, learn how to use Office 365 Connectors and create and send actionable message in Microsoft Teams
ms.localizationpriority: high
-keywords: teams Office365 connector
# Create and send messages
platform What Are Webhooks And Connectors https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/webhooks-and-connectors/what-are-webhooks-and-connectors.md
Title: Webhooks and connectors
-description: Understand how webhooks and connectors can connect your web services to the Teams client.
+description: In this module, understand how webhooks and connectors can connect your web services to the Teams client.
ms.localizationpriority: high