Updates from: 01/12/2024 05:06:44
Service Microsoft Docs article Related commit history on GitHub Change details
platform Build Apps For Anonymous User https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/build-apps-for-anonymous-user.md
Last updated 02/07/2023
# Build apps for anonymous users
-Anonymous users don't have a Microsoft Entra identity and aren't federated with a tenant. The anonymous participants are external users but their identity isn't shown in the meeting. An anonymous user can be a presenter or an attendee but can't be an organizer. You can build bots, messaging extensions, and cards and dialogs (referred as task modules in TeamsJS v1.x) in your app to engage with anonymous meeting participants.
+Anonymous users don't have a Microsoft Entra identity and aren't federated with a tenant. The anonymous participants are external users but their identity isn't shown in the meeting. An anonymous user can be a presenter or an attendee but can't be an organizer. You can build bots, messaging extensions, cards, and dialogs (referred as task modules in TeamsJS v1.x) in your app to engage with anonymous meeting participants.
> [!NOTE] >
platform Build Extensible Conversation For Meeting Chat https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/build-extensible-conversation-for-meeting-chat.md
Title: Build extensible conversation for meeting chat
-description: In this article, learn how to build extensible conversation for Microsoft Teams meeting chat with bots, cards and message extensions.
+description: In this article, learn how to build extensible conversation for Microsoft Teams meeting chat with bots, cards, and message extensions.
ms.localizationpriority: medium
platform Meeting Apps Apis https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
The following are the TeamsJS v2 responses for Get user context API based on mee
# [Channel meeting](#tab/channel-meeting) The following is a JSON payload response for a channel meeting for in-tenant users:+ ```json { "app": {
The following are the TeamsJS v2 responses for Get user context API based on mee
} } ```+ * User type
The following are the TeamsJS v2 responses for Get user context API based on mee
} ```+ * Call type
The following are the TeamsJS v2 responses for Get user context API based on mee
} ```
-
+ # [Group call](#tab/group-call)
-
+ The following is a JSON payload response for a group chat call for an in-tenant user:
-
+ ```json { "app": {
To subscribe to participant events, follow these steps:
The following examples show how to capture the participant join and leave events:
-# [Participant join event](#tab/participant-join-event)
+# [Participant join event](#tab/participant-join-event)
[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meetings-events/csharp/MeetingEvents/Bots/ActivityBot.cs#L35)
protected override async Task OnTeamsMeetingParticipantsJoinAsync(MeetingPartici
} ```
-# [Participant leave event](#tab/participant-leave-event)
+# [Participant leave event](#tab/participant-leave-event)
[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meetings-events/csharp/MeetingEvents/Bots/ActivityBot.cs#L48)
protected override async Task OnTeamsMeetingParticipantsLeaveAsync(MeetingPartic
Following are the examples of the participant join and leave event payloads:
-# [Participant join event](#tab/participant-join-event1)
+# [Participant join event](#tab/participant-join-event1)
The following is an example of the participant join event payload:
The following is an example of the participant join event payload:
} ```
-# [Participant leave event](#tab/participant-leave-event1)
+# [Participant leave event](#tab/participant-leave-event1)
The following is an example of the participant leave event payload:
platform Overview Analytics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/overview-analytics.md
Plan analytics for the Teams app the same way as you do for a SaaS product that
## Plan early for analytics
-Plan analytics for your Teams app at the development design and solution architecture stage. Examine which of the existing data instrumentation and practices for your core SaaS web app will accrue to hosted canvas constructs such as tabs, dialogs, meeting apps and so on. in Teams that youΓÇÖre optimizing or building from scratch to surface inside Teams. For Teams-specific capabilities, such as [conversational constructs](#conversational-constructs) like bots, message extensions, and so on, you'll need to plan and implement analytics instrumentation, capture relevant events, and context from the SDK methods from scratch.
+Plan analytics for your Teams app at the development design and solution architecture stage. Examine which of the existing data instrumentation and practices for your core SaaS web app will accrue to hosted canvas constructs such as tabs, dialogs, meeting apps, and so on in Teams that youΓÇÖre optimizing or building from scratch to surface inside Teams. For Teams-specific capabilities, such as [conversational constructs](#conversational-constructs) like bots, message extensions, and so on, you'll need to plan and implement analytics instrumentation, capture relevant events, and context from the SDK methods from scratch.
At the time, your production Teams app is live on the Teams Store and customers start using it, your analytics and data infrastructure should be fully operational. It ensures that you donΓÇÖt miss tracking:
This instrumentation is required to be done additionally in your SaaS app becaus
<!--Tracking Teams app specific analytics-->
-This section includes guidelines and pointers regarding what to look for, which events to capture, how to use instrumentation markers, and where to fetch Teams-relevant information that will help you plan and implement analytics for your app. Your Teams apps can be tabs, bots, message extensions, cards, Stage Views and so on. or any combination of these [capabilities and UI constructs](../../overview-explore.md#teams-app-features) across personal or shared scopes. It's best to understand, plan, and implement your instrumentation around each of these capabilities.
+This section includes guidelines and pointers regarding what to look for, which events to capture, how to use instrumentation markers, and where to fetch Teams-relevant information that will help you plan and implement analytics for your app. Your Teams apps can be tabs, bots, message extensions, cards, Stage Views, and so on or any combination of these [capabilities and UI constructs](../../overview-explore.md#teams-app-features) across personal or shared scopes. It's best to understand, plan, and implement your instrumentation around each of these capabilities.
You can classify Teams platform features into broadly two constructs:
After you extract the Teams-specific information from the tab context, some poss
#### Conversational constructs
-Conversation or chat-oriented capabilities include bots, message extensions, cards and dialogs (displaying an Adaptive Card) that are created for Teams users. Conceptually, these experiences are created for and available only to users specifically inside Teams. You'll need to capture Teams-specific events and handle them for Teams-specific instrumentation in your code for these constructs from scratch. A bot can access additional context data about a team, chat, meeting, 1:1 call, or group call where it's installed.
+Conversation or chat-oriented capabilities include bots, message extensions, cards, and dialogs (displaying an Adaptive Card) that are created for Teams users. Conceptually, these experiences are created for and available only to users specifically inside Teams. You'll need to capture Teams-specific events and handle them for Teams-specific instrumentation in your code for these constructs from scratch. A bot can access additional context data about a team, chat, meeting, 1:1 call, or group call where it's installed.
Use this information for enriching the bot's functionality and the user experience:
Besides the obvious metrics in the SaaS world such as daily, weekly, monthly act
- Which users have churned from your app in the past three months? - Has a specific user used your app in a Teams meeting?
-Next, see how you should methodically craft your data instrumentation strategy and decide what to measure based on which specific insights you want to derive from your Teams app usage.
+Next, see how you should methodically craft your data instrumentation strategy and decide what to measure based on which specific insights you want to derive from your Teams app usage.
## Next step
platform Teamsjs Support M365 https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/teamsjs-support-m365.md
Later in this article, you can find more information on each capability of the T
## `app`
-[Reference](/javascript/api/@microsoft/teams-js/app)
+[Reference](/javascript/api/@microsoft/teams-js/app) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/App.css) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+app)
Namespace to interact with app initialization and lifecycle.
The `app` namespace is supported globally across all application hosts and, ther
## `appInitialization`
-[Reference](/javascript/api/@microsoft/teams-js/appInitialization)
+[Reference](/javascript/api/@microsoft/teams-js/appInitialization) [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/AppInstallDialog.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+appInitialization)
Deprecated. Namespace for initializing an app. For new apps, use [app.initialize()](/javascript/api/@microsoft/teams-js/app#@microsoft-teams-js-app-initialize) from the [app](#app) capability.
Deprecated. Namespace for initializing an app. For new apps, use [app.initialize
## `appInstallDialog`
-[Reference](/javascript/api/@microsoft/teams-js/appinstalldialog)
+[Reference](/javascript/api/@microsoft/teams-js/appinstalldialog) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/AppInstallDialog.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+appInstallDialog)
Namespace used to open a dialog for installing an application.
Namespace used to open a dialog for installing an application.
## `authentication`
-[Reference](/javascript/api/@microsoft/teams-js/authentication)
+[Reference](/javascript/api/@microsoft/teams-js/authentication) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+authentication)
Namespace to interact with the authentication-related part of the library. This module is used for starting or completing authentication flows.
The `authentication` namespace is supported globally across all application host
## `barCode`
-[Reference](/javascript/api/@microsoft/teams-js/barcode)
+[Reference](/javascript/api/@microsoft/teams-js/barcode) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+barCode)
Preview. Namespace to interact with the barcode scanning-related part of the library.
Preview. Namespace to interact with the barcode scanning-related part of the lib
## `calendar`
-[Reference](/javascript/api/@microsoft/teams-js/calendar)
+[Reference](/javascript/api/@microsoft/teams-js/calendar) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+calendar)
Namespace providing calendar-related functionality.
Namespace providing calendar-related functionality.
## `call`
-[Reference](/javascript/api/@microsoft/teams-js/call)
+[Reference](/javascript/api/@microsoft/teams-js/call) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Call.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+call)
Namespace providing functionality to start a call with others.
Namespace providing functionality to start a call with others.
## `chat`
-[Reference](/javascript/api/@microsoft/teams-js/chat)
+[Reference](/javascript/api/@microsoft/teams-js/chat) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Chat.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+chat)
Preview. Namespace providing functionality to start a chat with others.
Preview. Namespace providing functionality to start a chat with others.
## `clipboard`
-[Reference](/javascript/api/@microsoft/teams-js/clipboard)
+[Reference](/javascript/api/@microsoft/teams-js/dialog) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.Url.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog)
Preview. This capability enables users to copy and paste to the system clipboard.
Preview. This group of capabilities enables apps to show modal dialogs (referred
### `dialog.adaptiveCard`
-[Reference](/javascript/api/@microsoft/teams-js/dialog.adaptivecard)
+[Reference](/javascript/api/@microsoft/teams-js/dialog.adaptivecard) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.AdaptiveCard.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog.adaptiveCard)
Preview. Subcapability for interacting with Adaptive Card dialogs. ### `dialog.adaptiveCard.bot`
-[Reference](/javascript/api/@microsoft/teams-js/dialog.adaptivecard.bot)
+[Reference](/javascript/api/@microsoft/teams-js/dialog.adaptivecard.bot) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.AdaptiveCard.Bot.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog.adaptiveCard.bot)
Preview. Subcapability for interaction with Adaptive Card dialogs that need to communicate with the Bot Framework. ### `dialog.update`
-[Reference](/javascript/api/@microsoft/teams-js/dialog.update)
+[Reference](/javascript/api/@microsoft/teams-js/dialog.update) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.Update.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog.update)
Preview. Namespace for updating dialogs. ### `dialog.url`
-[Reference](/javascript/api/@microsoft/teams-js/dialog.url)
+[Reference](/javascript/api/@microsoft/teams-js/dialog.url) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.Url.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog.url)
Preview. Subcapability for interacting with HTML-based dialogs. ### `dialog.url.bot`
-[Reference](/javascript/api/@microsoft/teams-js/dialog.url.bot)
+[Reference](/javascript/api/@microsoft/teams-js/dialog.url.bot) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Dialog.Url.Bot.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+dialog.url.bot)
Preview. Subcapability for interacting with HTML-based dialogs that need to communicate with the Bot Framework. ## `geoLocation`
-[Reference](/javascript/api/@microsoft/teams-js/geolocation)
+[Reference](/javascript/api/@microsoft/teams-js/geolocation) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/GeoLocation.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+geoLocation)
Preview. Namespace providing location-related functionality. This is the newer version of the location module.
When an API doesn't support or generates an error, add logic to fail or provide
### `geoLocation.map`
-[Reference](/javascript/api/@microsoft/teams-js/geolocation.map)
+[Reference](/javascript/api/@microsoft/teams-js/geolocation.map) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/GeoLocation.map.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+geoLocation.map)
Preview. Subcapability providing map-related functionality. ## `location`
-[Reference](/javascript/api/@microsoft/teams-js/location)
+[Reference](/javascript/api/@microsoft/teams-js/location) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+location)
Deprecated. Namespace providing location-related functionality (get and show location). Use [geoLocation](#geolocation) for new apps.
Deprecated. Namespace providing location-related functionality (get and show loc
## `mail`
-[Reference](/javascript/api/@microsoft/teams-js/mail)
+[Reference](/javascript/api/@microsoft/teams-js/mail) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+mail)
Namespace providing email-related functionality.
Namespace providing email-related functionality.
## `media`
-[Reference](/javascript/api/@microsoft/teams-js/media)
+[Reference](/javascript/api/@microsoft/teams-js/media) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+media)
Namespace providing image file-related functionality.
Namespace providing image file-related functionality.
## `meeting`
-[Reference](/javascript/api/@microsoft/teams-js/meeting)
+[Reference](/javascript/api/@microsoft/teams-js/meeting) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+meeting)
Namespace providing in-meeting app functionality.
Namespace providing in-meeting app functionality.
## `menus`
-[Reference](/javascript/api/@microsoft/teams-js/menus)
+[Reference](/javascript/api/@microsoft/teams-js/menus) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Menus.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+menus)
Namespace to interact with the menu-related part of the library. This module is used to show *View Configuration*, *Action Menu*, and *Navigation Bar Menu*.
Namespace to interact with the menu-related part of the library. This module is
## `pages`
-[Reference](/javascript/api/@microsoft/teams-js/pages)
+[Reference](/javascript/api/@microsoft/teams-js/pages) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Pages.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages)
Navigation-related part of the TeamsJS library.
Prior to TeamsJS version 2.0, all deep linking scenarios were handled using `sha
### `pages.appButton`
-[Reference](/javascript/api/@microsoft/teams-js/pages.appbutton)
+[Reference](/javascript/api/@microsoft/teams-js/pages.appbutton) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Pages.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages.appButton)
Provides APIs to interact with the app button part of the SDK. ### `pages.backStack`
-[Reference](/javascript/api/@microsoft/teams-js/pages.backstack)
+[Reference](/javascript/api/@microsoft/teams-js/pages.backstack) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/pagesSubCapability/NavigateBack.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages.backStack)
Provides APIs for handling the user's navigational history. ### `pages.config`
-[Reference](/javascript/api/@microsoft/teams-js/pages.config)
+[Reference](/javascript/api/@microsoft/teams-js/pages.config) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages.config)
Provides APIs to interact with the configuration-specific part of the SDK. This object is usable only on the configuration frame. ### `pages.currentApp`
-[Reference](/javascript/api/@microsoft/teams-js/pages.currentapp)
+[Reference](/javascript/api/@microsoft/teams-js/pages.currentapp) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Pages.Current.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages.currentApp)
Provides functions for navigating without needing to specify your application ID. ### `pages.tabs`
-[Reference](/javascript/api/@microsoft/teams-js/pages.tabs)
+[Reference](/javascript/api/@microsoft/teams-js/pages.tabs) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+pages.tabs)
Provides APIs for querying and navigating between contextual tabs of an application. Unlike personal tabs, contextual tabs are pages associated with a specific context, such as channel or chat. ## `people`
-[Reference](/javascript/api/@microsoft/teams-js/people)
+[Reference](/javascript/api/@microsoft/teams-js/people) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/People.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+people)
Namespace providing functionality for [People Picker API](../concepts/device-capabilities/people-picker-capability.md).
Namespace providing functionality for [People Picker API](../concepts/device-cap
## `profile`
-[Reference](/javascript/api/@microsoft/teams-js/profile)
+[Reference](/javascript/api/@microsoft/teams-js/profile) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+profile)
Preview. Namespace providing for profile-related functionality.
Preview. Namespace providing for profile-related functionality.
## `search`
-[Reference](/javascript/api/@microsoft/teams-js/search)
+[Reference](/javascript/api/@microsoft/teams-js/search) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+search)
Preview. Allows your application to interact with the host Microsoft 365 application's search box. By integrating your application with the host's search box, users can search your app using the same search box they use elsewhere in Teams, Outlook, or Microsoft 365 app.
Preview. Allows your application to interact with the host Microsoft 365 applica
## `secondaryBrowser`
-[Reference](/javascript/api/@microsoft/teams-js/secondaryBrowser)
+[Reference](/javascript/api/@microsoft/teams-js/secondaryBrowser) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+secondaryBrowser)
Preview. Namespace supporting in-app browser experiences of the host app. For example, opening a URL in the host app inside a browser.
Preview. Namespace supporting in-app browser experiences of the host app. For ex
## `settings`
-[Reference](/javascript/api/@microsoft/teams-js/settings)
+[Reference](/javascript/api/@microsoft/teams-js/settings) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+settings)
Deprecated. Provides settings-related functionality. Use equivalent APIs from the [pages](#pages) for new apps.
Deprecated. Provides settings-related functionality. Use equivalent APIs from th
## `sharing`
-[Reference](/javascript/api/@microsoft/teams-js/sharing)
+[Reference](/javascript/api/@microsoft/teams-js/sharing) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Sharing.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+sharing)
Namespace to open a share dialog for web content. For more information, see [Share to Teams from personal app or tab](../concepts/build-and-test/share-to-teams-from-personal-app-or-tab.md).
Namespace to open a share dialog for web content. For more information, see [Sha
## `stageView`
-[Reference](/javascript/api/@microsoft/teams-js/stageview)
+[Reference](/javascript/api/@microsoft/teams-js/stageview) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/StageView.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+stageView)
Preview. Namespace to interact with the Stage View specific part of the library.
Preview. Namespace to interact with the Stage View specific part of the library.
## `tasks`
-[Reference](/javascript/api/@microsoft/teams-js/tasks)
+[Reference](/javascript/api/@microsoft/teams-js/tasks) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+tasks)
The earlier version of the capability for providing modal dialogs (referred as task modules in TeamsJS v1.x) supports versions prior to TeamsJS v2.8.0. For new apps, use the [dialog](#dialog) capability.
The earlier version of the capability for providing modal dialogs (referred as t
## `teamsCore`
-[Reference](/javascript/api/@microsoft/teams-js/teamscore)
+[Reference](/javascript/api/@microsoft/teams-js/teamscore) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/TeamsCore.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+teamsCore)
Namespace containing the set of APIs that support Teams-specific functionalities.
Namespace containing the set of APIs that support Teams-specific functionalities
## `video`
-[Reference](/javascript/api/@microsoft/teams-js/videoeffects)
+[Reference](/javascript/api/@microsoft/teams-js/videoeffects) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/Video.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+video)
Preview. Namespace representing functionality for in-meeting video effects.
Preview. Namespace representing functionality for in-meeting video effects.
## `webStorage`
-[Reference](/javascript/api/@microsoft/teams-js/webstorage)
+[Reference](/javascript/api/@microsoft/teams-js/webstorage) | [Sample](https://github.com/vikramtha/microsoft-teams-library-js/blob/vikramtha/teamsjs-cc-app/apps/teams-cc-app/src/components/capabilities/WebStorage.tsx) | [Known issues](https://github.com/OfficeDev/microsoft-teams-library-js/issues?q=is%3Aissue+webStorage)
Preview. Contains functionality to allow web apps to store data in webview cache.
platform Manifest Schema Dev Preview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema-dev-preview.md
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|2048 characters||Initial webview URL.|
-|`parameters`|Array of object|5|✔️|The list of parameters the command takes. Minimum: 1; maximum: 5|
+|`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. </br> For Api-based message extension, The name must map to the `parameters.name` in the OpenAPI Description. If you're referencing a property in the request body schema, then the name must map to `properties.name` or query parameters. | |`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.|
platform Manifest Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/manifest-schema.md
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`|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.|
platform Invoking Task Modules https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/task-modules/invoking-task-modules.md
Dialogs (referred as task modules in TeamsJS v1.x) can be invoked from tabs, bot
| Invoked using | Dialog with HTML or JavaScript | Dialog with Adaptive Card | | | | | | JavaScript in a tab | 1. Use the Teams client SDK function `tasks.startTask()` with an optional `submitHandler(err, result)` callback function. <br/><br/> 2. In the dialog code, when the user has performed the actions, call the Teams SDK function `tasks.submitTask()` with a `result` object as a parameter. If a `submitHandler` callback was specified in `tasks.startTask()`, Teams calls it with `result` as a parameter. If there was an error when invoking `tasks.startTask()`, the `submitHandler` function is called with an `err` string instead. <br/><br/> 3. You can also specify a `completionBotId` when calling `teams.startTask()`. Then the `result` is sent to the bot instead. | 1. Call the Teams client SDK function `tasks.startTask()` with a [TaskInfo object](#the-taskinfo-object) and `TaskInfo.card` containing the JSON for the Adaptive Card to show in the dialog pop-up. <br/><br/> 2. If a `submitHandler` callback was specified in `tasks.startTask()`, Teams calls it with an `err` string, if there was an error when invoking `tasks.startTask()` or if the user closes the dialog pop-up using the X at the upper right. <br/><br/> 3. If the user presses an `Action.Submit` button then its `data` object is returned as the value of `result`. |
-| Bot card button | 1. Bot card buttons, depending on the type of button, can invoke dialogs in two ways, a deep link URL or by sending a `task/fetch` message. <br/><br/> 2. If the button's action `type` is `task/fetch` that is `Action.Submit` button type for Adaptive Cards, a `task/fetch invoke` event that is an HTTP POST is sent to the bot. The bot responds to the POST with HTTP 200 and the response body containing a wrapper around the [TaskInfo object](#the-taskinfo-object). For more information, see [invoking a dialog using `task/fetch`](~/task-modules-and-cards/task-modules/task-modules-bots.md#invoke-a-dialog-using-taskfetch). Teams displays the dialog. <br/><br/> 3. After the user has performed the actions, call the Teams SDK function `tasks.submitTask()` with a `result` object as a parameter. The bot receives a `task/submit invoke` message that contains the `result` object. <br/><br/> 4. You have three different ways to respond to the `task/submit` message, by doing nothing that is the task completed successfully, by displaying a message to the user in a pop-up window, or by invoking another dialog window. For more information, see [detailed discussion on `task/submit`](task-modules-bots.md#responds-to-the-tasksubmit-messages). | <ul><li> Like buttons on Bot Framework cards, buttons on Adaptive Cards support two ways of invoking dialogs, deep link URLs with `Action.openUrl` buttons, and `task/fetch` using `Action.Submit` buttons. </li></ul> <br/><br/> <ul><li> dialogs with Adaptive Cards work similarly to the HTML or JavaScript case. The major difference is that since there's no JavaScript when you're using Adaptive Cards, there's no way to call `tasks.submitTask()`. Instead, Teams takes the `data` object from `Action.Submit` and returns it as the payload of the `task/submit` event. For more information, see [responds to the `task/submit`messages](task-modules-bots.md#responds-to-the-tasksubmit-messages). </li></ul> |
+| Bot card button | 1. Bot card buttons, depending on the type of button, can invoke dialogs in two ways, a deep link URL or by sending a `task/fetch` message. <br/><br/> 2. If the button's action `type` is `task/fetch` that is `Action.Submit` button type for Adaptive Cards, a `task/fetch invoke` event that is an HTTP POST is sent to the bot. The bot responds to the POST with HTTP 200 and the response body containing a wrapper around the [TaskInfo object](#the-taskinfo-object). For more information, see [invoking a dialog using `task/fetch`](~/task-modules-and-cards/task-modules/task-modules-bots.md#invoke-a-dialog-using-taskfetch). Teams displays the dialog. <br/><br/> 3. After the user has performed the actions, call the Teams SDK function `tasks.submitTask()` with a `result` object as a parameter. The bot receives a `task/submit invoke` message that contains the `result` object. <br/><br/> 4. You have three different ways to respond to the `task/submit` message, by doing nothing that is the task completed successfully, by displaying a message to the user in a pop-up window, or by invoking another dialog window. For more information, see [detailed discussion on `task/submit`](task-modules-bots.md#responds-to-the-tasksubmit-messages). | 1. Like buttons on Bot Framework cards, buttons on Adaptive Cards support two ways of invoking dialogs, deep link URLs with `Action.openUrl` buttons, and `task/fetch` using `Action.Submit` buttons. <br/><br/> 2. dialogs with Adaptive Cards work similarly to the HTML or JavaScript case. The major difference is that since there's no JavaScript when you're using Adaptive Cards, there's no way to call `tasks.submitTask()`. Instead, Teams takes the `data` object from `Action.Submit` and returns it as the payload of the `task/submit` event. For more information, see [responds to the `task/submit`messages](task-modules-bots.md#responds-to-the-tasksubmit-messages). |
| Deep link URL <br/>[URL syntax](../../concepts/build-and-test/deep-link-application.md#deep-link-to-open-a-dialog) | 1. Teams invokes the dialog that is the URL that appears inside the `<iframe>` specified in the `url` parameter of the deep link. There's no `submitHandler` callback. <br/><br/> 2. Within the JavaScript of the page in the dialog, call `tasks.submitTask()` to close it with a `result` object as a parameter, the same as when invoking it from a tab or a bot card button. However, completion logic is slightly different. If your completion logic resides on the client that is if there's no bot, there's no `submitHandler` callback, so any completion logic must be in the code preceding the call to `tasks.submitTask()`. Invocation errors are only reported through the console. If you have a bot, then you can specify a `completionBotId` parameter in the deep link to send the `result` object through a `task/submit` event. | 1. Teams invokes the dialog that is the JSON card body of the Adaptive Card that is specified as a URL-encoded value of the `card` parameter of the deep link. <br/><br/> 2. The user closes the dialog by selecting the X at the upper right of the dialog or by pressing an `Action.Submit` button on the card. Since there's no `submitHandler` to call, the user must have a bot to send the value of the Adaptive Card fields. The user must use the `completionBotId` parameter in the deep link to specify the bot to send the data to using a `task/submit invoke` event. | The next section specifies the `TaskInfo` object that defines certain attributes for a dialog.
The `TaskInfo` object contains the metadata for a dialog. Define the `url` for a
The next section specifies dialog sizing that enables the user to set the height and width of the dialog.
-## dialog sizing
+## Dialog sizing
Using integers for `TaskInfo.width` and `TaskInfo.height`, sets the height and width of the dialog in pixels. However, depending on the size of the Team's window and screen resolution they're reduced proportionally while maintaining the aspect ratio that is width or height.