Updates from: 11/01/2022 02:22:30
Service Microsoft Docs article Related commit history on GitHub Change details
platform Meeting Apps Apis https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
The following table provides the response codes:
* [Teams authentication flow for tabs](../tabs/how-to/authentication/auth-flow-tab.md) * [Apps for Teams meetings](teams-apps-in-meetings.md) * [Live Share SDK](teams-live-share-overview.md)
+* [Teams cloud meeting recording](/microsoftteams/cloud-recording)
## Next steps
platform Teams Live Share Canvas https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-live-share-canvas.md
Last updated 10/04/2022
In conference rooms and classrooms across the globe, whiteboards are a pivotal part of collaboration. In modern times however, the whiteboard is no longer enough. With numerous digital tools such as PowerPoint being the focal point of collaboration in the modern era, it's essential to enable the same creative potential.
-To enable more seamless collaboration, Microsoft created PowerPoint Live, which has become instrumental to how people work in Teams. Presenters can annotate over slides for everyone to see, using pens, highlighters, and laser pointers to draw attention to key concepts. Using Live Share canvas, your app can bring the power of PowerPoint Live inking tools with minimal effort.
+To enable more seamless collaboration, Microsoft created PowerPoint Live, which has become instrumental to how people work in Microsoft Teams. Presenters can annotate over slides for everyone to see, using pens, highlighters, and laser pointers to draw attention to key concepts. Using Live Share canvas, your app can bring the power of PowerPoint Live inking tools with minimal effort.
## Install
platform Bot Basics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-basics.md
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 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.
+An activity handler is used to organize the conversational logic for your bot. 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
The bot logic processes incoming activities from one or more of your bot channel
Activity handlers are different in context of a team, where a new member is added to the team instead of a message thread.
-The list of handlers defined in `ActivityHandler` includes the following:
+The list of handlers defined in `ActivityHandler` includes the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The list of handlers defined in `ActivityHandler` includes the following:
#### Teams specific activity handlers
-The `TeamsActivityHandler` extends the list of handlers in the core Bot Framework handlers section to include the following:
+The `TeamsActivityHandler` extends the list of handlers in the core Bot Framework handlers section to include the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The `TeamsActivityHandler` extends the list of handlers in the core Bot Framewor
#### Teams invoke activities
-The list of Teams activity handlers called from the `OnInvokeActivityAsync` Teams activity handler includes the following:
+The list of Teams activity handlers called from the `OnInvokeActivityAsync` Teams activity handler includes the following invoke types:
| Invoke types | Handler | Description | | :-- | :-- | :-- |
The Invoke activities listed in this section are for conversational bots in Team
Activity handlers are different in context of a team, where the new member is added to the team instead of a message thread.
-The list of handlers defined in `ActivityHandler` includes the following:
+The list of handlers defined in `ActivityHandler` includes the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The list of handlers defined in `ActivityHandler` includes the following:
#### Teams specific activity handlers
-The `TeamsActivityHandler` extends the list of handlers in the core Bot Framework handlers section to include the following:
+The `TeamsActivityHandler` extends the list of handlers in the core Bot Framework handlers section to include the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The invoke activities listed in this section are for conversational bots in Team
Activity handlers are different in context of a team, where the new member is added to the team instead of a message thread.
-The list of handlers defined in `ActivityHandler` includes the following:
+The list of handlers defined in `ActivityHandler` includes the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The list of handlers defined in `ActivityHandler` includes the following:
#### Teams specific activity handlers
-The `TeamsActivityHandler` extends the list of handlers from the core Bot Framework handlers section to include the following:
+The `TeamsActivityHandler` extends the list of handlers from the core Bot Framework handlers section to include the following events:
| Event | Handler | Description | | :-- | :-- | :-- |
The `TeamsActivityHandler` extends the list of handlers from the core Bot Framew
#### Teams invoke activities
-The list of Teams activity handlers called from the `on_invoke_activity` Teams activity handler includes the following:
+The list of Teams activity handlers called from the `on_invoke_activity` Teams activity handler includes the following invoke types:
| Invoke types | Handler | Description | | :-- | :-- | :-- |
platform Bot Features https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/bot-features.md
Title: Bots and SDKs
-description: In this article, learn about tools and Bot Framework SDKs(C#,Python,Java,JavaScript) for Microsoft Teams bots and it's advantages and disadvantages.
+description: In this article, learn about tools and Bot Framework SDKs(C#, Python, Java, JavaScript) for Microsoft Teams bots and it's advantages and disadvantages.
ms.localizationpriority: medium
this.onMessage(async (context, next) => {
* [Calls and meetings bots](~/bots/calls-and-meetings/calls-meetings-bots-overview.md) * [Bot conversations](~/bots/how-to/conversations/conversation-basics.md) * [Bot command menus](~/bots/how-to/create-a-bot-commands-menu.md)
+* [Create custom triggers in Bot Framework Composer](/composer/how-to-create-custom-triggers)
* [Authentication flow for bots in Microsoft Teams](~/bots/how-to/authentication/auth-flow-bot.md) * [Use task modules from bots](~/task-modules-and-cards/task-modules/task-modules-bots.md) * [Publish your bot to Azure](/azure/bot-service/bot-builder-deploy-az-cli)
platform Conversation Basics https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/conversation-basics.md
A conversation is a series of messages sent between your Microsoft Teams bot and
| `personal` | This conversation type includes conversations between bots and a single user. | | `groupChat` | This conversation type includes chat between a bot and two or more users. It also enables your bot in meeting chats. |
-A bot behaves differently depending on the conversation it is involved in:
+A bot behaves differently depending on the conversation it's involved in:
* Bots in channel and group chat conversations require the user to @mention the bot to invoke it in a channel.
-* Bots in a one-to-one conversation do not require an @mention. All messages sent by the user routes to your bot.
+* Bots in a one-to-one conversation don't require an @mention. All messages sent by the user routes to your bot.
> [!NOTE] > Bots can be enabled to receive all channel messages in a team without being @mentioned using resource-specific consent (RSC) permissions. This feature is currently available in [public developer preview](../../../resources/dev-preview/developer-preview-intro.md) only. For more information, see [receive all channel messages with RSC](channel-messages-with-rsc.md). For the bot to work in a particular conversation or scope, add support to that scope in the [app manifest](~/resources/schem).
-Each message in a bot conversation is an `Activity` object of type `messageType: message`. When a user sends a message, Teams posts the message to your bot and the bot handles the message. In addition, to define core commands that your bot responds to, you can add a command menu with a drop-down list of commands for your bot. Bots in a group or channel only receive messages when they are mentioned @botname. Teams sends notifications to your bot for conversation events that happen in scopes where your bot is active. You can capture these events in your code and take action on them.
+Each message in a bot conversation is an `Activity` object of type `messageType: message`. When a user sends a message, Teams posts the message to your bot and the bot handles the message. In addition, to define core commands that your bot responds to, you can add a command menu with a drop-down list of commands for your bot. Bots in a group or channel only receive messages when they're mentioned @botname. Teams sends notifications to your bot for conversation events that happen in scopes where your bot is active. You can capture these events in your code and take action on them.
-A bot can also send proactive messages to users. A proactive message is any message sent by a bot that is not in response to a request from a user. You can format your bot messages to include rich cards that include interactive elements, such as buttons, text, images, audio, video, and so on. Bot can dynamically update messages after sending them, instead of having your messages as static snapshots of data. Messages can also be deleted using the Bot Framework's `DeleteActivity` method.
+A bot can also send proactive messages to users. A proactive message is any message sent by a bot that isn't in response to a request from a user. You can format your bot messages to include rich cards that include interactive elements, such as buttons, text, images, audio, video, and so on. Bot can dynamically update messages after sending them, instead of having your messages as static snapshots of data. Messages can also be deleted using the Bot Framework's `DeleteActivity` method.
## Next step
platform Send Proactive Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/send-proactive-messages.md
The following table provides a simple code sample that incorporates basic conver
||--|--|-|--| | Teams Conversation Basics | Demonstrates basics of conversations in Teams, including sending one-to-one proactive messages.| [View](https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/csharp_dotnetcore/57.teams-conversation-bot) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/57.teams-conversation-bot) | [View](https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/python/57.teams-conversation-bot) | | Start new thread in a channel | Demonstrates creating a new thread in a channel. | [View](https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/csharp_dotnetcore/58.teams-start-new-thread-in-channel) | [View](https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/javascript_nodejs/58.teams-start-new-thread-in-channel) | [View](https://github.com/microsoft/BotBuilder-Samples/blob/master/samples/python/58.teams-start-thread-in-channel) |
-| Proactive installation of app and sending proactive notifications | This sample shows how you can use proactive installation of app for users and send proactive notifications by calling Microsoft Graph APIs. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/graph-proactive-installation/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/graph-proactive-installation/nodejs) | |
-| Proactive Messaging | This is a sample that shows how to save user's conversation reference information to send proactive reminder message using Bots. | Coming soon | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-proactive-messaging-teamsfx) | - |
+| Proactive installation of app and sending proactive notifications | This sample shows how you can use proactive installation of app for users and send proactive notifications by calling Microsoft Graph APIs. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/graph-proactive-installation/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/graph-proactive-installation/nodejs) | NA |
+| Proactive Messaging | This is a sample that shows how to save user's conversation reference information to send proactive reminder message using Bots. | NA | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-proactive-messaging-teamsfx) | NA |
> [!div class="nextstepaction"] > [More code sample of proactive messaging](/samples/officedev/msteams-samples-proactive-messaging/msteams-samples-proactive-messaging/)
platform Get Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/get-teams-context.md
Response body
## See also
-[Localize your app](../../concepts/build-and-test/apps-localization.md)
+* [Localize your app](../../concepts/build-and-test/apps-localization.md)
+* [Get the profile photo of a user, a group, a team, or an Outlook contact](/graph/api/profilephoto-get)
platform What Are Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/what-are-bots.md
You can use the Teams bot APIs to get information for members of a chat or team.
<! TBD: For quick scanning, see if the above information can be itemized as a list. >
-## Next step
-
-> [!div class="nextstepaction"]
-> [Bots and SDKs](~/bots/bot-features.md)
- ## Code samples |Sample name | Description | C# | Node.js | |-|--|--|--| | Bot daily task reminder| Demonstrate how to schedule a recurring task and get a reminder at a scheduled time. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-daily-task-reminder/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-daily-task-reminder/nodejs) |
-| Hello World Bot | This is a simple hello world application with both Bot and Message extension capabilities. | | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/hello-world-bot) |
-| Adaptive Card Notification | This is a sample which shows how to send notifications with different adaptive cards using Bots. | | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/adaptive-card-notification) |
-| Incoming Webhook Notification | This is a sample which shows how to send notifications via Incoming Webhook in Microsoft Teams channels. | | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/incoming-webhook-notification) |
+| Hello World Bot | This is a simple hello world application with both Bot and Message extension capabilities. | NA | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/hello-world-bot) |
+| Adaptive Card Notification | This is a sample, which shows how to send notifications with different adaptive cards using Bots. | NA | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/adaptive-card-notification) |
+| Incoming Webhook Notification | This is a sample, which shows how to send notifications via Incoming Webhook in Microsoft Teams channels. | NA | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/v1.0.0/incoming-webhook-notification) |
+
+## Next step
+
+> [!div class="nextstepaction"]
+> [Bots and SDKs](~/bots/bot-features.md)
## See also
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
## See also
-[Localize JSON schema reference](~/resources/schem)
+* [Localize JSON schema reference](~/resources/schem)
platform Apps Package https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/apps-package.md
# Create Teams app package
-You need an app package how ever you plan to distribute your Microsoft Teams app. A valid package is a ZIP file that contains the following:
+You need an app package, however, you plan to distribute your Microsoft Teams app. A valid package is a ZIP file that contains the following:
* **App manifest**: Describes how your app is configured, including its capabilities, required resources, and other important attributes. * **App icons**: Each package requires a color and outline icon for your app.
platform Shared Channels https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/shared-channels.md
Apps must function cross-tenants in installation and usage. The following table
* [Build tabs for Teams](../../tabs/what-are-tabs.md) * [App manifest schema for Teams](../../resources/schem) * [Shared channels in Microsoft Teams](/MicrosoftTeams/shared-channels)
+* [Channel resource type](/graph/api/resources/channel)
* [Retention policy for Teams locations](/microsoft-365/compliance/create-retention-policies)
platform Teams Developer Portal https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/teams-developer-portal.md
The <a href="https://dev.teams.microsoft.com" target="_blank">Developer Portal f
The Developer Portal provides the following ways to register a Teams app:
-* Create and register a brand new app.
-* Import an existing app package.
+* [Create and register a brand new app](#create-and-register-a-brand-new-app).
+* [Import an existing app package](#import-an-existing-app).
### Create and register a brand new app
platform Test App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/test-app-overview.md
After integrating your app with Microsoft Teams, you must test your app before p
## Prepare your Microsoft 365 tenant
-Before you start testing your app, prepare your Microsoft 365 test tenant and enable custom Teams app allow you to upload your app. You must sign-up for Microsoft 365 developer program and manage the Teams settings for your organization. Set up your developer subscription and configure it through [prepare your Microsoft 365 Tenant](~/concepts/build-and-test/prepare-your-o365-tenant.md).
+Before you start testing your app, prepare your Microsoft 365 test tenant and enable custom Teams app to allow you to upload your app. You must sign-up for Microsoft 365 developer program and manage the Teams settings for your organization. Set up your developer subscription and configure it through [prepare your Microsoft 365 Tenant](~/concepts/build-and-test/prepare-your-o365-tenant.md).
## Test and debug
platform Common Reasons For App Validation Failure https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/common-reasons-for-app-validation-failure.md
Your app name plays a critical role for users to discover your app on the Micros
* Inconsistent usage of app name throughout the appΓÇÖs functionality. * Mismatch between the app name mentioned in the app manifest submitted as part of the app package and Partner Center. * App names appended with *Beta*, *Dev*, and *Prod* to indicate app isn't production ready.
-* App submissions where the developer has changed the app name, but the old app name is sill used within the app.
+* App submissions where the developer has changed the app name, but the old app name is still used within the app.
## Support link
platform Include Saas Offer https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/prepare/include-saas-offer.md
For complete instructions, see [build the landing page for your SaaS offer](/azu
When someone finishes buying a subscription plan for your app and wants to stay in the Teams, without directing them to your landing page, select **Yes, I would like Microsoft to manage customer licenses on my behalf**.
-For more information, see [first party license management](/platform/concepts/deploy-and-publish/appsource/prepare/first-party-license-management).
+For more information, see [manage license for third party apps in Teams](#manage-license-for-third-party-apps-in-teams).
### Best practices for landing pages
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
After you've identified the app scope, it's time to understand the following thr
Provide complete app experiences to engage on mobile. As your users engage with your app, provide full immersive experience on mobile, either at par or better than desktop experience. To provide good experience for your users, make all use cases responsive on mobile.
-> [!TIP]
-> To get information on the design guidelines, see [design process for Teams apps](design-teams-app-process.md).
+ > [!TIP]
+ > To get information on the design guidelines, see [design process for Teams apps](design-teams-app-process.md).
## Use cases
platform Glossary https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/glossary.md
# Glossary
-Common terms and definitions used in Teams developer documentation.
+Common terms and definitions used in Microsoft Teams developer documentation.
## A
platform Teams App Permissions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/graph-api/App-permissions/Teams-app-permissions.md
+
+ Title: Manage Teams app permissions
+
+description: In this module, learn how Teams apps are managed in different places based on the feature.
+
+ms.localizationpriority: medium
+++
+# Permissions in Teams app
+
+Permission for Teams app is managed in two places, depending on the app feature:
+
+* [Resource-specific consent (RSC)](#resource-specific-consent)
+* [Azure Active Directory (Azure AD)](#azure-active-directory)
++
+## Resource-specific consent
+
+RSC is a Microsoft Teams and Microsoft Graph API integration that enables your app to use API endpoints to manage specific resources, either teams or chats, within an organization. For more information, see [enable resource-specific consent in Teams](../rsc/resource-specific-consent.md).
+
+RSC permissions are only available to Teams apps installed on the Teams client and are currently not part of the Azure AD portal and are declared in the Teams app manifest (JSON) file.
+
+## Azure Active Directory
+
+Azure AD is a cloud-based identity and access management service. This service helps your employees access external resources, such as Microsoft 365, the Azure portal, and thousands of other SaaS applications. For more information, see [Azure Active Directory](/azure/active-directory/fundamentals/active-directory-whatis).
+
+### Microsoft Graph API permission
+
+Graph API permissions are managed in Azure AD. For your app to access data in Microsoft Graph, the user or administrator must grant it the correct permissions via a consent process. For more information, see [Microsoft Graph permissions](/graph/permissions-reference).
+
+## Capability wise management
+
+### Bot and messaging extension
+
+The bot or messaging extension ID is generated based on the following registration platform. This ID is required to add a bot or messaging extension to a Teams app.
+
+* Azure AD portal
+* Developer or Bot Framework portal
+
+#### Azure AD portal
+
+When a bot or messaging extension is registered on Azure AD portal, it will have an Azure AD app ID associated with it, which can be found in **Azure AD** portal > **App Registrations**. Endpoints and other bot configurations are managed in the Azure portal.
+
+#### Developer or Bot Framework portal
+
+When a bot or messaging extension is registered in the Developer or Bot Framework portal, it will not have an Azure AD app ID. However, the bot or messaging extension ID can be found on the Bot Framework portal. Endpoints and other bot configurations are managed in the Bot Framework portal.
+
+Other Teams specific configuration for the bot can be managed in the Developer portal section for the app.
+
+### Connectors
+
+Connectors have a connector ID and are registered and managed through the Connector Developer Dashboard. This ID is necessary for introducing a connector to the Teams App. Other Teams specific configuration for connectors can be managed in the developer portal section for the app.
platform Test Resource Specific Consent https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/graph-api/rsc/test-resource-specific-consent.md
To check whether the RSC permissions are being honored by the API request payloa
* `azureADAppId`: Your app's Azure AD app ID. * `azureADAppSecret`: Your Azure AD app password.
-* `token_scope`: The scope is required to get a token. set the value to https://graph.microsoft.com/.default.
+* `token_scope`: The scope is required to get a token. Set the value to `https://graph.microsoft.com/.default`.
* `teamGroupId`: You can get the team group id from the Teams client as follows: 1. In the Teams client, select **Teams** from the far left navigation bar.
To check whether the RSC permissions are being honored by the API request payloa
* `azureADAppId`: Your app's Azure AD app ID. * `azureADAppSecret`: Your Azure AD app password.
-* `token_scope`: The scope is required to get a token. set the value to https://graph.microsoft.com/.default.
+* `token_scope`: The scope is required to get a token. Set the value to `https://graph.microsoft.com/.default`.
* `tenantId`: The name or the Azure AD Object ID of your tenant. * `chatId`: You can get the chat thread id from the Teams *web* client as follows:
platform Azure Provisioning Instructions Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/get-started/azure-provisioning-instructions-tab.md
Select the Teams Toolkit :::image type="icon" source="~/assets/images/teams-tool
> [!NOTE] > Your app is hosted using Azure resources. >
- >For more information, see [Create resource group](/azure/azure-resource-manager/management/manage-resource-groups-portal.)
+ >For more information, see [Create resource group.](/azure/azure-resource-manager/management/manage-resource-groups-portal)
A dialog warns you that costs may be incurred when running resources in Azure.
platform Extend M365 Teams Message Extension https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/extend-m365-teams-message-extension.md
ms.localizationpriority: high
# Extend a Teams message extension across Microsoft 365
-Search-based [message extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions) allow users to search an external system and share results through the compose message area of the Microsoft Teams client. By [extending your Teams apps across Microsoft 365](overview.md), you can now bring production search-based Teams message extensions to preview audiences in Outlook for Windows desktop and outlook.com.
+Search-based [message extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions) allow users to search an external system and share results through the compose message area of the Microsoft Teams client. You can now bring production search-based Teams message extensions to preview audiences in Outlook for Windows desktop and outlook.com by [extending your Teams apps across Microsoft 365](overview.md).
-The process to update your search-based Teams message extension to run Outlook involves these steps:
+The process to update your search-based Teams message extension involves the following steps:
> [!div class="checklist"] >
The process to update your search-based Teams message extension to run Outlook i
> * 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 walks you through these steps and shows how to preview your message extension in Outlook for Windows desktop and web.
## Prerequisites
-To complete this tutorial, you'll need:
+To complete this tutorial, you need:
* A Microsoft 365 Developer Program sandbox tenant. * Enrollment in *Office 365 Targeted Releases* for your sandbox tenant.
To start with a [sample message extension](https://github.com/OfficeDev/TeamsFx-
1. Select **Create a new Teams app** option. 1. Select **Search-based message extension** to download sample code for a Teams message extension using the latest Teams app manifest (version `1.13`).
- :::image type="content" source="images/toolkit-palatte-search-sample.png" alt-text="Type 'Create a new Teams app' VS Code command palette to list Teams sample options":::
+ :::image type="content" source="images/toolkit-palatte-search-sample.png" alt-text="The screenshot is an example that shows the Type 'Create a new Teams app' VS Code command palette to list Teams sample options.":::
The sample is also available as *NPM Search Connector* in the Teams Toolkit Samples gallery. From the Teams Toolkit pane, select *Development* > *View samples* > **NPM Search Connector**.
- :::image type="content" source="images/toolkit-search-sample.png" alt-text="NPM Search Connector sample in Teams Toolkit Samples gallery":::
+ :::image type="content" source="images/toolkit-search-sample.png" alt-text="The screenshot is an example that shows the NPM Search Connector sample in Teams Toolkit Samples gallery.":::
-1. Select a location on your local machine for the workspace folder.
+1. Select preferred programming language.
+1. Select a location on your local machine for the workspace folder and enter your application name.
1. Open the command palette (`Ctrl+Shift+P`) and type `Teams: Provision in the cloud` to create the required app resources (Azure App Service, App Service plan, Azure Bot, and Managed Identity) in your Azure account.
+1. Select a subscription and a resource group.
+1. Select **Provision**.
1. Open the command palette (`Ctrl+Shift+P`) and type `Teams: Deploy to the cloud` to deploy the sample code to the provisioned resources in Azure and start the app.
+1. Select **Deploy**.
-From here, you can skip ahead to [Add an Outlook channel for your bot](#add-an-outlook-channel-for-your-bot) to complete the final step of enabling the Teams message extension to work in Outlook. (The app manifest is already referencing the correct version, so no updates are necessary.)
+From here, you can skip ahead to [Add an Outlook channel for your bot](#add-an-outlook-channel-for-your-bot) to complete the final step of enabling the Teams message extension to work in Outlook. (The app manifest is already referencing the correct version, so no updates are necessary).
## Update the app manifest
-You'll need to use the [Teams developer manifest](../resources/schem) schema version `1.13` to enable your Teams message extension to run in Outlook.
+You need to use the [Teams developer manifest](../resources/schem) schema version `1.13` to enable your Teams message extension to run in Outlook.
You have two options for updating your app manifest:
Open your Teams app manifest and update the `$schema` and `manifestVersion` with
-If you used Teams Toolkit to create your message extension app, you can use it to validate the changes to your manifest file and identify any errors. Open the command palette `Ctrl+Shift+P` and find **Teams: Validate manifest file**.
+If you used Teams Toolkit to create your message extension app, you can use it to validate the changes to your manifest file and identify any errors. Open the command palette (`Ctrl+Shift+P`) and find **Teams: Validate manifest file**.
## Add an Outlook channel for your bot In Microsoft Teams, a message extension consists of a web service that you host and an app manifest, which defines where your web service is hosted. The web service takes advantage of the [Bot Framework SDK](/azure/bot-service/bot-service-overview) messaging schema and secure communication protocol through a Teams channel registered for your bot.
-For users to interact with your message extension from Outlook, you'll need to add an Outlook channel to your bot:
+For users to interact with your message extension from Outlook, you need to add an Outlook channel to your bot:
1. From [Microsoft Azure portal](https://portal.azure.com) (or [Bot Framework portal](https://dev.botframework.com) if you previously registered there), go to your bot resource.
For users to interact with your message extension from Outlook, you'll need to a
1. Under *Available channels*, select **Outlook**. Select the **Message extensions** tab, then **Apply**.
- :::image type="content" source="images/azure-bot-channel-message-extensions.png" alt-text="Add an Outlook 'Message Extensions' channel for your bot from the Azure Bot Channels pane":::
+ :::image type="content" source="images/azure-bot-channel-message-extensions.png" alt-text="The screenshot is an example that shows the Outlook 'Message Extensions' channel for your bot from the Azure Bot Channels pane.":::
1. Confirm that your Outlook channel is listed along with Teams in your bot's **Channels** pane.
- :::image type="content" source="images/azure-bot-channels.png" alt-text="Azure Bot Channels pane listing both Teams and Outlook channels":::
+ :::image type="content" source="images/azure-bot-channels.png" alt-text="The screenshot is an example that shows the Azure Bot Channels pane listing both Teams and Outlook channels.":::
## Update Microsoft Azure Active Directory (Azure AD) app registration for SSO > [!NOTE]
-> You can skip the step if you're using the [sample app](#quickstart) provided in this tutorial, as the scenario doesn't involve Azure Active Directory (AAD) Single Sign-On authentication.
+> You can skip this step if you're using the [sample app](#quickstart) provided in this tutorial, as the scenario doesn't involve Azure Active Directory (AAD) Single Sign-On authentication.
Azure Active Directory (AD) Single-sign on (SSO) for message extensions works the same way in Outlook [as it does in Teams](/microsoftteams/platform/bots/how-to/authentication/auth-aad-sso-bots). However, you need to add several client application identifiers to the Azure AD app registration of your bot in your tenant's *App registrations* portal.
Azure Active Directory (AD) Single-sign on (SSO) for message extensions works th
## Sideload your updated message extension in Teams
-The final step is to sideload your updated message extension ([app package](/microsoftteams/platform/concepts/build-and-test/apps-package)) in Teams. Once completed, your message extension will appear in your installed *Apps* from the compose message area.
+The final step is to sideload your updated message extension ([app package](/microsoftteams/platform/concepts/build-and-test/apps-package)) into Teams. After you complete, message extension appears in your installed *Apps* from the compose message area.
1. Package your Teams application (manifest and app [icons](/microsoftteams/platform/resources/schema/manifest-schema#icons)) in a zip file. If you used Teams Toolkit to create your app, you can easily do this using the **Zip Teams metadata package** option in the *Deployment* menu of Teams Toolkit.
- :::image type="content" source="images/toolkit-zip-teams-metadata-package.png" alt-text="'Zip Teams metadata package' option in Teams Toolkit extension for Visual Studio Code":::
+ :::image type="content" source="images/toolkit-zip-teams-metadata-package.png" alt-text="The screenshot is an example that shows 'Zip Teams metadata package' option in Teams Toolkit extension for Visual Studio Code.":::
1. Sign in to Teams with your sandbox tenant account, and toggle into *Developer Preview* mode. Select the ellipsis (**...**) menu by your user profile, then select: **About** > **Developer preview**.
- :::image type="content" source="images/teams-dev-preview.png" alt-text="From Teams ellipses menu, open 'About', and select 'Developer Preview' option":::
+ :::image type="content" source="images/teams-dev-preview.png" alt-text="The screenshot is an example that shows the 'Developer Preview' option.":::
-1. Select **Apps** to open the **Manage your apps** pane. Then select **Publish an app**.
+1. Select **Apps** to open the **Manage your apps** pane. Then select **Upload an app**.
- :::image type="content" source="images/teams-manage-your-apps.png" alt-text="Open the 'Manage your apps' pane and select 'Publish an app'":::
+ :::image type="content" source="../assets/images/teams-manage-your-apps.png" alt-text="The screenshot is an example that shows the 'Upload an app' option.":::
-1. Choose **Upload a custom app** option, select your app package, and install (*Add*) it to your Teams client.
+1. Choose **Upload a customized app** option, select your app package, and install (*Add*) it to your Teams client.
- :::image type="content" source="images/teams-upload-custom-app.png" alt-text="'Upload a custom app' option in Teams":::
+ :::image type="content" source="../assets/images/teams-upload-custom-app.png" alt-text="The screenshot is an example that shows the 'Upload a customized app' option in Teams.":::
-After it's sideloaded through Teams, your message extension will be available in outlook.com and Outlook for Windows desktop.
+After it's sideloaded through Teams, your message extension is available in Outlook for Windows desktop and web.
## Preview your message extension in Outlook
Here's how to test your message extension running in Outlook on Windows desktop
To preview your app running in Outlook on the web:
-1. Sign in to [outlook.com](https://www.outlook.com) using credentials for your test tenant.
+1. Sign in to [outlook.com](https://www.outlook.com) using your test tenant credentials.
1. Select **New message**. 1. Open **More apps** flyout menu on the bottom of the composition window.
- :::image type="content" source="images/outlook-web-compose-more-apps.png" alt-text="Click on the 'More apps' menu on the bottom of the mail composition window to use your message extension":::
+ :::image type="content" source="images/outlook-web-compose-more-apps.png" alt-text="The screenshot is an example that shows the 'More apps' menu on the bottom of the mail composition window to use your message extension.":::
Your message extension is listed. You can invoke it from there and use it just as you would while composing a message in Teams.
Your message extension is listed. You can invoke it from there and use it just a
To preview your app running in Outlook on Windows desktop:
-1. Launch Outlook logged in with credentials for your test tenant.
+1. Launch Outlook and sign in with your test tenant credentials.
1. Select **New Email**. 1. Open the **More Apps** flyout menu on the top ribbon.
- :::image type="content" source="images/outlook-desktop-compose-more-apps.png" alt-text="Click on 'More Apps' on the composition window ribbon to use your message extension":::
+ :::image type="content" source="images/outlook-desktop-compose-more-apps.png" alt-text="The screenshot is an example that shows the 'More Apps' on the composition window ribbon to use your message extension.":::
Your message extension is listed, it opens an adjacent pane to display search results.
Your message extension is listed, it opens an adjacent pane to display search re
While your updated message extension will continue to run in Teams with full [feature support for message extensions](/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions), there are limitations in this early preview of the Outlook-enabled experience to be aware of: * Message extensions in Outlook are limited to the mail [*compose* context](/microsoftteams/platform/resources/schema/manifest-schema#composeextensions). Even if your Teams message extension includes `commandBox` as a *context* in its manifest, the current preview is limited to the mail composition (`compose`) option. Invoking a message extension from the global Outlook *Search* box isn't supported.
-* [Action-based message extension](/microsoftteams/platform/messaging-extensions/how-to/action-commands/define-action-command?tabs=AS) command aren't supported in Outlook. If your app has both search- and action-based commands, it will surface in Outlook, but the action menu won't be available.
+* [Action-based message extension](/microsoftteams/platform/messaging-extensions/how-to/action-commands/define-action-command?tabs=AS) commands aren't supported in Outlook. If your app has both search- and action-based commands, it will surface in Outlook, but the action menu won't be available.
* Insertion of more than five [Adaptive Cards](/microsoftteams/platform/task-modules-and-cards/cards/design-effective-cards?tabs=design) in an email isn't supported; Adaptive Cards v1.4 and later aren't supported.
-* [Card actions](/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json) of type `messageBack`, `imBack`, `invoke`, and `signin` aren't supported for inserted cards. Support is limited to `openURL`: on click, the user will be redirected to the specified URL in a new tab.
+* [Card actions](/microsoftteams/platform/task-modules-and-cards/cards/cards-actions?tabs=json) of type `messageBack`, `imBack`, `invoke`, and `signin` aren't supported for inserted cards. Support is limited to `openURL`: when selected, the user is redirected to the specified URL in a new tab.
Use the [Microsoft Teams developer community channels](/microsoftteams/platform/feedback) to report issues and provide feedback. ### Debugging
-As you test your message extension, you can identify the source (originating from Teams versus Outlook) of bot requests by the [channelId](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#channel-id) of the [Activity](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md) object. When a user performs a query, your service receives a standard Bot Framework `Activity` object. One of the properties in the Activity object is `channelId`, which will have the value of `msteams` or `outlook`, depending from where the bot request originates. For more information, see [Search based message extensions SDK](/microsoftteams/platform/resources/messaging-extension-v3/search-extensions).
+As you test your message extension, you can identify the source (originating from Teams versus Outlook) of bot requests by the [channelId](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#channel-id) of the [Activity](https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md) object. When a user performs a query, your service receives a standard Bot Framework `Activity` object. One of the properties in the Activity object is `channelId`, which will have the value of `msteams` or `outlook`, depending on where the bot request originates. For more information, see [Search based message extensions SDK](/microsoftteams/platform/resources/messaging-extension-v3/search-extensions).
## Code sample
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-the-app-manifest).
+> * [Update your TeamsJS SDK references](#update-sdk-references).
+> * [Amend your Content Security Policy headers](#configure-content-security-policy-headers).
+> * [Update your Microsoft Azure Active Directory (Azure AD) App Registration for Single Sign-On (SSO)](#update-azure-ad-app-registration-for-sso).
+> * [Sideload your updated app in Teams](#sideload-your-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. ## Prerequisites
-To complete this tutorial, you'll need:
+To complete this tutorial, you need:
* A Microsoft 365 Developer Program sandbox tenant * Your sandbox tenant enrolled in *Office 365 Targeted Releases*
If you have an existing personal tab app, make a copy or a branch of your produc
If you'd like to use sample code to complete this tutorial, follow the setup steps in the [Todo List Sample](https://github.com/OfficeDev/TeamsFx-Samples/tree/main/todo-list-with-Azure-backend) to build a personal tab app using the Teams Toolkit extension for Visual Studio Code, then return to this article to update it for Microsoft 365.
-Alternately, you can use a basic single sign-on *hello world* app already enabled Microsoft 365 in the following [Quickstart](#quickstart) section and then skip to [Sideload your app in Teams](#sideload-your-app-in-teams) .
+Alternately, you can use a basic single sign-on *hello world* app already enabled Microsoft 365 in the following [Quickstart](#quickstart) section and then skip to [sideload your app in Teams](#sideload-your-app-in-teams).
### Quickstart To start with a [personal tab](https://github.com/OfficeDev/TeamsFx-Samples/tree/ga/todo-list-with-Azure-backend-M365) that's already enabled to run in Outlook and Office, use Teams Toolkit extension for Visual Studio Code. 1. From Visual Studio Code, open the command palette (`Ctrl+Shift+P`), type `Teams: Create a new Teams app`.
+1. Select **Create a new Teams app** option.
1. Select **SSO enabled personal tab**.
- :::image type="content" source="images/toolkit-tab-sample.png" alt-text="Todo List sample (Works in Teams, Outlook and Office) in Teams Toolkit":::
-
-1. Select a location on your local machine for the workspace folder.
+ :::image type="content" source="images/toolkit-tab-sample.png" alt-text="The Screenshot is an example that shows the Todo List sample (Works in Teams, Outlook and Office) in Teams Toolkit.":::
+1. Select preferred programming language.
+1. Select a location on your local machine for the workspace folder and enter your application name.
1. Open the command palette (`Ctrl+Shift+P`) and type `Teams: Provision in the cloud` to create the required app resources (App Service plan, Storage account, Function App, Managed Identity) in your Azure account.
+1. Select a subscription and a resource group.
+1. Select **Provision**.
1. Open the command palette (`Ctrl+Shift+P`) and type `Teams: Deploy to the cloud` to deploy the sample code to the provisioned resources in Azure and start the app.
+1. Select **Deploy**.
-From here, you can skip ahead to [Sideload your app in Teams](#sideload-your-app-in-teams) and preview your app in Outlook and Office. (The app manifest and TeamsJS API calls have already been updated for Microsoft 365.)
+From here, you can skip ahead to [sideload your app in Teams](#sideload-your-app-in-teams) and preview your app in Outlook and Office. (The app manifest and TeamsJS API calls have already been updated for Microsoft 365.)
## Update the app manifest
-You'll need to use the [Teams developer manifest](../resources/schem) schema version `1.13` to enable your Teams personal tab to run in Outlook and Office.
+You need to use the [Teams developer manifest](../resources/schem) schema version `1.13` to enable your Teams personal tab to run in Outlook and Office.
You have two options for updating your app manifest:
If you used Teams Toolkit to create your personal app, you can also use it to va
## Update SDK references
-To run in Outlook and Office, your app will need to reference the npm package `@microsoft/teams-js@2.0.0` (or higher). While code with downlevel versions is supported in Outlook and Office, deprecation warnings are logged, and support for downlevel versions of TeamsJS in Outlook and Office will eventually cease.
+To run in Outlook and Office, your app needs to refer the npm package `@microsoft/teams-js@2.0.0` (or higher). While code with downlevel versions is supported in Outlook and Office, deprecation warnings are logged, and support for downlevel versions of TeamsJS in Outlook and Office will eventually cease.
You can use Teams Toolkit to help identify and automate the required code changes to upgrade from 1.x TeamsJS versions to TeamsJS version 2.x.x. Alternately, you can perform the same steps manually; refer to [Microsoft Teams JavaScript client SDK](../tabs/how-to/using-teams-client-sdk.md#whats-new-in-teamsjs-version-20) for details.
If your app makes use of [Content Security Policy](https://developer.mozilla.org
## Update Azure AD app registration for SSO
-[Azure Active Directory (AD) Single-sign on (SSO)](../tabs/how-to/authentication/tab-sso-overview.md) for personal tabs works the same way in Office and Outlook as it does in Teams. However you'll need to add several client application identifiers to the Azure AD app registration of your tab app in your tenant's *App registrations* portal.
+[Azure Active Directory (AD) Single-sign on (SSO)](../tabs/how-to/authentication/tab-sso-overview.md) for personal tabs works the same way in Office and Outlook as it does in Teams. However, you need to add several client application identifiers to the Azure AD app registration of your tab app in your tenant's *App registrations* portal.
1. Sign in to [Microsoft Azure portal](https://portal.azure.com) with your sandbox tenant account. 1. Open the **App registrations** blade. 1. Select the name of your personal tab application to open its app registration. 1. Select **Expose an API** (under *Manage*).
- :::image type="content" source="images/azure-app-registration-clients.png" alt-text="Authorize client Ids from the *App registrations* blade on Azure portal":::
+ :::image type="content" source="images/azure-app-registration-clients.png" alt-text="The screenshot is an example that shows the authorize client Ids from the *App registrations* blade on Azure portal.":::
1. In the **Authorized client applications** section, ensure all of the following `Client Id` values are added:
The final step to running your app in Office and Outlook is to sideload your upd
1. Package your Teams application ([manifest](../resources/schem) and [app icons](/microsoftteams/platform/resources/schema/manifest-schema#icons)) in a zip file. If you used Teams Toolkit to create your app, you can easily do this using the **Zip Teams metadata package** option in the **Deployment** menu of Teams Toolkit.
- :::image type="content" source="images/toolkit-zip-teams-metadata-package.png" alt-text="'Zip Teams metadata package' option in Teams Toolkit extension for Visual Studio Code":::
+ :::image type="content" source="images/toolkit-zip-teams-metadata-package.png" alt-text="'The screenshot is an example that shows the Zip Teams metadata package' option in Teams Toolkit extension for Visual Studio Code.":::
1. Sign in to Teams with your sandbox tenant account, and toggle into *Developer Preview* mode. Select the ellipsis (**...**) menu by your user profile, then select: **About** > **Developer preview**.
- :::image type="content" source="images/teams-dev-preview.png" alt-text="From Teams ellipses menu, open 'About', and select 'Developer Preview' option":::
+ :::image type="content" source="images/teams-dev-preview.png" alt-text="The screenshot describes how to select 'Developer Preview' option.":::
-1. Select **Apps** to open the **Manage your apps** pane. Then select **Publish an app**.
+1. Select **Apps** to open the **Manage your apps** pane. Then select **Upload an app**.
- :::image type="content" source="images/teams-manage-your-apps.png" alt-text="Open the 'Manage your apps' pane and select 'Publish an app'":::
+ :::image type="content" source="images/teams-manage-your-apps.png" alt-text="The screenshot is an example that shows the Manage your apps pane and Publish an app options.":::
-1. Choose **Upload a custom app** option and select your app package.
+1. Choose **Upload a customized app** option and select your app package.
- :::image type="content" source="images/teams-upload-custom-app.png" alt-text="'Upload a custom app' option in Teams":::
+ :::image type="content" source="images/teams-upload-custom-app.png" alt-text="The screenshot is an example that shows the option to upload am app in Teams.":::
-After it's sideloaded to Teams, your personal tab is available in Outlook and Office. You must sign in with the same credentials that you used to sideload your app in Teams. When running the Office app for Android, you need to restart the app to use your personal tab app from the Office app.
+After it's sideloaded to Teams, your personal tab is available in Outlook and Office. You must sign in with the same credentials that you used to sideload your app into Teams. When running the Office app for Android, you need to restart the app to use your personal tab app from the Office app.
-You can pin the app for quick access, or you can find your app in the ellipses (**...**) flyout among recent applications in the sidebar on the left. Pinning an app in Teams don't pin it as an app in Office or Outlook.
+You can pin the app for quick access, or you can find your app in the ellipses (**...**) flyout among recent applications in the sidebar on the left. Pinning an app in Teams doesn't pin it as an app in Office or Outlook.
## Preview your personal tab in other Microsoft 365 experiences Here's how to preview your app running in Office and Outlook, web and Windows desktop clients. > [!NOTE]
-> Uninstalling your app from Teams also removes it from the **More Apps** catalogs in Outlook and Office. If you're using the Teams Toolkit sample app provided above.
+> If you use the Teams Toolkit sample app and uninstall it from Teams, it is removed from the **More Apps** catalogs in Outlook and Office.
### Outlook on Windows
To view your app running in Outlook on Windows desktop:
1. On the side bar, select **More Apps**. Your sideloaded app title appears among your installed apps. 1. Select your app icon to launch your app in Outlook.
- :::image type="content" source="images/outlook-desktop-more-apps.png" alt-text="Click on the ellipses ('More apps') option on the side bar of Outlook desktop client to see your installed personal tabs":::
+ :::image type="content" source="images/outlook-desktop-more-apps.png" alt-text="The screenshot is an example that shows the ellipses (More apps) option on the side bar of Outlook desktop client to see your installed personal tabs.":::
### Outlook on the web
To view your app in Outlook on the web:
1. On the side bar, select **More Apps**. Your sideloaded app title appears among your installed apps. 1. Select your app icon to launch and preview your app running in Outlook on the web.
- :::image type="content" source="images/outlook-web-more-apps.png" alt-text="Click on the ellipses ('More apps') option on the side bar of outlook.com to see your installed personal tabs":::
+ :::image type="content" source="images/outlook-web-more-apps.png" alt-text="The screenshot is an example that shows the ellipses (More apps) option on the side bar of outlook.com to see your installed personal tabs.":::
### Office on Windows
To view your app running in Office on Windows desktop:
1. Select the **Apps** icon on the side bar. Your sideloaded app title appears among your installed apps. 1. Select your app icon to launch your app in Office.
- :::image type="content" source="images/office-desktop-more-apps.png" alt-text="Click on the ellipses ('More apps') option on the side bar of Office desktop client to see your installed personal tabs":::
+ :::image type="content" source="images/office-desktop-more-apps.png" alt-text="The screenshot is an example that shows the ellipses (More apps) option on the side bar of Office desktop client to see your installed personal tabs.":::
### Office on the web
To preview your app running in Office on the web:
1. Select the **Apps** icon on the side bar. Your sideloaded app title appears among your installed apps. 1. Select your app icon to launch your app in Office on the web.
- :::image type="content" source="images/office-web-more-apps.png" alt-text="Click on the 'More apps' option on the side bar of office.com to see your installed personal tabs":::
+ :::image type="content" source="images/office-web-more-apps.png" alt-text="The screenshot is an example that shows the (More apps) option on the side bar of office.com to see your installed personal tabs.":::
### Office app for Android
To preview your app running in Office on the web:
To view your app running in Office app for Android:
-1. Launch the Office app and sign in using your dev tenant account. If the Office app for Android was already running prior to sideloading your app in Teams, you'll need to restart it to see it among your installed apps.
+1. Launch the Office app and sign in using your dev tenant account. If the Office app for Android was already running prior to sideloading your app in Teams, you need to restart it in order to see in your installed apps.
1. Select the **Apps** icon. Your sideloaded app appears among installed apps. 1. Select your app icon to launch your app in Office app for Android.
+ :::image type="content" source="images/office-mobile-apps.png" alt-text="The screenshot is an example that shows the 'Apps' option on the side bar of the Office app to see your installed personal tabs.":::
## Troubleshooting
Use the [Microsoft Teams developer community channels](/microsoftteams/platform/
From Teams Toolkit, you can Debug (`F5`) your tab application running in Office and Outlook, in addition to Teams.
-Upon first run of local debug to Office or Outlook, you'll be prompted to sign in to your Microsoft 365 tenant account and install a self-signed test certificate. You'll also be prompted to manually install Teams. Select **Install in Teams** to open a browser window and manually install your app. Then select **Continue** to proceed to debug your app in Office/Outlook.
+Upon first run of local debug in Office or Outlook, you'll be prompted to sign in to your Microsoft 365 tenant account and install a self-signed test certificate. You'll also be prompted to manually install Teams. Select **Install in Teams** to open a browser window and manually install your app. Then select **Continue** to proceed to debug your app in Office/Outlook.
Provide feedback and report any issues with the Teams Toolkit debugging experience at [Microsoft Teams Framework (TeamsFx)](https://github.com/OfficeDev/TeamsFx/issues). #### Mobile debugging
-Teams Toolkit (`F5`) debugging is not yet supported with Office app for Android. Here's how to remotely debug your app running in Office app for Android:
+Teams Toolkit (`F5`) debugging isn't yet supported with Office app for Android. Here's how to remotely debug your app running in Office app for Android:
1. If you debug using a physical Android device, connect it to your dev machine and enable the option for [USB debugging](https://developer.android.com/studio/debug/dev-options). This is enabled by default with the Android emulator. 1. Launch the Office app From your Android device. 1. Open your profile **Me > Settings > Allow debugging**, and toggle on the option for **Enable remote debugging**.
- :::image type="content" source="images/office-android-enable-remote-debugging.png" alt-text="Screenshot showing Enable remote debugging":::
+ :::image type="content" source="images/office-android-enable-remote-debugging.png" alt-text="The screenshot is an example that shows the Enable remote debugging toggle option.":::
-1. Exit **Settings**.
-1. Exit your profile screen.
+1. Leave **Settings**.
+1. Leave your profile screen.
1. Select **Apps** and launch your sideloaded app to run within the Office app. 1. Ensure your Android device is connected to your dev machine. From your dev machine, open your browser to its DevTools inspection page. For example, go to `edge://inspect/#devices` in Microsoft Edge to display a list of debug-enabled Android WebViews. 1. Find the `Microsoft Teams Tab` with your tab URL and select **inspect** to start debugging your app with DevTools.
- :::image type="content" source="images/office-android-debug.png" alt-text="screenshot showing list of webviews in devtool":::
+ :::image type="content" source="images/office-android-debug.png" alt-text="The screenshot is an example that shows the list of webviews in devtool.":::
1. Debug your tab app within the Android WebView. In the same way you [remotely debug](/microsoft-edge/devtools-guide-chromium/remote-debugging) a regular website on an Android device.
Teams Toolkit (`F5`) debugging is not yet supported with Office app for Android.
| Todo List (Microsoft 365) | Editable todo list with SSO built with React and Azure Functions. Works in Teams, Outlook, Office. | [View](https://github.com/OfficeDev/TeamsFx-Samples/tree/ga/todo-list-with-Azure-backend-M365)| | Image Editor (Microsoft 365) | Create, edit, open, and save images using Microsoft Graph API. Works in Teams, Outlook, Office. | [View](https://github.com/OfficeDev/m365-extensibility-image-editor) | | Sample Launch Page (Microsoft 365) | Demonstrates SSO authentication and TeamsJS SDK capabilities as available in different hosts. Works in Teams, Outlook, Office. | [View](https://github.com/OfficeDev/microsoft-teams-library-js/tree/main/apps/sample-app) |
-| Northwind Orders app | Demonstrates how to use Microsoft TeamsJS SDK V2 to extend teams application to other M365 host apps. Works in Teams, Outlook, Office. Optimized for mobile.| [View](https://github.com/microsoft/app-camp/tree/main/experimental/ExtendTeamsforM365) |
+| Northwind Orders app | Demonstrates how to use Microsoft TeamsJS SDK V2 to extend teams application to other Microsoft 365 host apps. Works in Teams, Outlook, Office. Optimized for mobile.| [View](https://github.com/microsoft/app-camp/tree/main/experimental/ExtendTeamsforM365) |
## Next step
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/overview.md
With an aim toward simplifying and streamlining the Microsoft 365 developer ecos
### Office Add-ins (preview)
-You can now define and deploy Office Add-ins in the [developer preview version](../resources/schem) of the Microsoft Teams app manifest. Currently this preview is limited to Outlook Add-ins running on subscription Office for Windows.
+You can now define and deploy Office Add-ins in the [developer preview version](../resources/schem) of the Microsoft Teams app manifest. Currently, this preview is limited to Outlook Add-ins running on subscription Office for Windows.
For more information, see [Teams manifest for Office Add-ins (preview)](/office/dev/add-ins/develop/json-manifest-overview). ## Microsoft commercial marketplace submission
-Join the growing number of production Teams apps in the [Microsoft commercial marketplace](https://appsource.microsoft.com/) (Microsoft AppSource) store with expanded support for Outlook and Office preview (Targeted Release) audiences. The app [submission process for Teams apps enabled for Outlook and Office](../concepts/deploy-and-publish/appsource/publish.md) is the same as for traditional Teams apps. The only difference is you'll use Teams app manifest [version 1.13](../tabs/how-to/using-teams-client-sdk.md) in your app package, which introduces support for Teams apps that run across Microsoft 365.
+Join the growing number of production Teams apps in the [Microsoft commercial marketplace](https://appsource.microsoft.com/) (Microsoft AppSource) store with expanded support for Outlook and Office preview (Targeted Release) audiences. The app [submission process for Teams apps enabled for Outlook and Office](../concepts/deploy-and-publish/appsource/publish.md) is the same as for traditional Teams apps. The only difference is that you'll use Teams app manifest [version 1.13](../tabs/how-to/using-teams-client-sdk.md) in your app package, which introduces support for Teams apps that run across Microsoft 365.
-Once published as a Microsoft 365-enabled Teams app, your app will be discoverable as an installable app from the Outlook and Office app stores, in addition to the Teams store. When running in Outlook and Office, your app uses the same permissions granted in Teams. Teams admins can [Manage access to Teams apps across Microsoft 365](/MicrosoftTeams/manage-third-party-teams-apps) for users in their organization.
+After your app is published as a Microsoft 365-enabled Teams app, your app will be discoverable as an installable app in the Outlook and Office app stores, in addition to the Teams store. When running in Outlook and Office, your app uses the same permissions granted in Teams. Teams admins can [Manage access to Teams apps across Microsoft 365](/MicrosoftTeams/manage-third-party-teams-apps) for users in their organization.
For more information, see [Publish Teams apps for Microsoft 365](publish.md).
platform Prerequisites https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/prerequisites.md
To set up your development environment:
You need a Microsoft 365 developer subscription sandbox tenant to set up your dev environment. If you don't already have one, create a [sandbox tenant](/office/developer-program/microsoft-365-developer-program-get-started) or get a test tenant through your organization.
-You'll also need to enable sideloading for your tenant:
+You also need to enable sideloading for your tenant:
1. Sign in to [Teams admin center](https://admin.teams.microsoft.com/dashboard) with your test tenant credentials.
You'll also need to enable sideloading for your tenant:
1. At the top right, select **Org-wide app settings**.
- 1. Under Custom apps, turn on the **Interaction with custom app** toggle and save.
+ 1. Under Custom apps, turn on the **Interaction with custom app** toggle and **Save**.
:::image type="content" source="images/teams-admin-enable-sideloading.png" alt-text="The screenshot is an example that enables sideloading for custom apps from the Teams Admin Center":::
To enroll your test tenant for Office 365 targeted releases:
1. **Target release for everyone** 1. **Target release for select users**
- :::image type="content" source="images/m365-admin-center-targeted-releases.png" alt-text="Microsoft 365 admin center 'Release preferences' menu with Targeted release option selected":::
+ :::image type="content" source="images/m365-admin-center-targeted-releases.png" alt-text="The screenshot is an example that shows the Microsoft 365 admin center 'Release preferences' menu with Targeted release option selected.":::
1. Select **Save**.
-For more information on Office 365 release options, see [Set up the Standard or Targeted release options](/microsoft-365/admin/manage/release-options-in-office-365?view=o365-worldwide&preserve-view=true#targeted-release) in *Microsoft 365 admin center help*.
+For more information on Office 365 release options, see [set up the Standard or Targeted release options](/microsoft-365/admin/manage/release-options-in-office-365?view=o365-worldwide&preserve-view=true#targeted-release) in *Microsoft 365 admin center help*.
## Install Office apps in your test environment ### Desktop
-You can preview Teams apps running in Outlook on Windows desktop by using a recent *Beta Channel build*. Check if you have to [Change the Microsoft 365 Apps update channel](/deployoffice/change-update-channels?WT.mc_id=M365-MVP-5002016) for your test tenant to install an Office 365 Beta Channel build.
+You can preview Teams apps running in Outlook on Windows desktop by using a recent *Beta Channel build*. Check if you have to [change the Microsoft 365 Apps update channel](/deployoffice/change-update-channels?WT.mc_id=M365-MVP-5002016) for your test tenant to install an Office 365 Beta Channel build.
To install Office 365 Beta Channel applications in your test environment:
To install Office 365 Beta Channel applications in your test environment:
1. Open Outlook (desktop client) and set up the mail account using your test tenant credentials. 1. Open **File** > **Office Account** > **About Outlook** to confirm you're running a Microsoft 365 *Beta Channel* build of Outlook.
- :::image type="content" source="images/outlook-about-beta-channel.png" alt-text="Go to 'About Outlook' from your Office Account to verify you're running a Beta Channel build.":::
+ :::image type="content" source="images/outlook-about-beta-channel.png" alt-text="The screenshot is an example that shows about Outlook to verify that you're running a Beta Channel build.":::
1. Verify that *Microsoft Edge WebView2 Runtime* is installed. Open Windows **Start** > **Apps & features**, and search for **webview**:
- :::image type="content" source="images/windows-addremove-webview2.png" alt-text="Search for 'webview' under 'Apps and features' in your Windows Settings":::
+ :::image type="content" source="images/windows-addremove-webview2.png" alt-text="The screenshot is an example that shows the search field in your Windows settings.":::
If it's not listed, install [Microsoft Edge WebView2](https://developer.microsoft.com/microsoft-edge/webview2/) to your test environment.
To install Office 365 Beta Channel applications in your test environment:
You can preview Teams personal tabs running in Office app for Android by joining the beta program.
-To install the latest Office app beta, build to your physical Android device, or Android emulator:
+To install the latest Office app beta, build to your physical Android device or Android emulator:
1. Ensure you use a Google Play [supported Android device](https://support.google.com/googleplay/answer/1727131).
-1. Launch the **Play Store** on your Android device,.
+1. Launch the **Play Store** on your Android device.
1. Search for office and select **Microsoft Office: Edit & Share**. 1. Select the **Install** button.
- :::image type="content" source="images/office-android-install.png" alt-text="screenshot of Microsoft Office: Edit & Share app in Google Play Store":::
+ :::image type="content" source="images/office-android-install.png" alt-text="The screenshot is an example that shows the install button for the Microsoft Office: Edit & Share app in Google Play Store.":::
1. Select **Join** under **Join the beta section** after the installation completes.
- :::image type="content" source="images/office-android-join-beta.png" alt-text="screenshot of Join the beta screen":::
+ :::image type="content" source="images/office-android-join-beta.png" alt-text="The screenshot is an example that shows the Join the beta screen.":::
1. Launch the Office app and sign in with your test tenant credentials. 1. Open your profile **(Me) > Settings** and scroll to the bottom of the menu.
Ensure that you switch to the [Public Developer Preview](../resources/dev-previe
1. From the ellipsis (**...**) menu next to your user profile, select **About** > **Developer preview**. A dialog appears, select **Switch to developer preview**. 1. After the Teams app restarts, go to the ellipsis (**...**) menu next to your user profile and check if **Developer Preview** is selected.
- :::image type="content" source="images/teams-dev-preview.png" alt-text="Public developer preview option in Teams":::
+ :::image type="content" source="images/teams-dev-preview.png" alt-text="The screenshot is an example that shows the public developer preview option in Teams.":::
## Install Visual Studio Code and Teams Toolkit extension
Create or update a Teams app to run across Microsoft 365:
> [!div class="nextstepaction"] > [Enable a Teams personal tab for Office and Outlook](extend-m365-teams-personal-tab.md) > [!div class="nextstepaction"]
-> [Enable a Teams message extension for Outlook](extend-m365-teams-message-extension.md)
+> [Enable a Teams message extension for Outlook](extend-m365-teams-message-extension.md)
platform Publish https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/m365-apps/publish.md
ms.localizationpriority: medium
# Publish Teams apps for Microsoft 365
-Microsoft Teams supports Microsoft 365-enabled Teams apps for production. You can distribute these apps to audience who use the *Targeted Release* (dev preview) versions of Outlook.com and Office.com, the *Beta Channel* build of Outlook for Windows desktop, and Office Current Channel (dev preview) build of Office app for Android. Distribution options and processes for Microsoft 365-enabled Teams apps are the same as for traditional Teams apps.
+Microsoft Teams supports Microsoft 365-enabled Teams apps for production. You can distribute these apps to users who use the *Targeted Release* (dev preview) versions of Outlook.com and Office.com, the *Beta Channel* build of Outlook for Windows desktop, and Office Current Channel (dev preview) build of Office app for Android. Distribution options and processes for Microsoft 365-enabled Teams apps are the same as for traditional Teams apps.
After it's published, your app will be discoverable as an installable app from the Outlook and Office app stores, in addition to the Teams store. Your app uses the permissions defined in Teams across Outlook and Office. Teams admins can [manage access to Teams apps across Microsoft 365](/MicrosoftTeams/manage-third-party-teams-apps) for users in their organization.
Outlook-enabled message extensions can be distributed to test and production ten
### Teams client
-From the **Apps** menu, select **Manage your apps** > **Publish an app** > **Submit an app to your org**. This requires approval from your IT admin.
+From the **Apps** menu, select **Manage your apps** > **Publish an app** > **Submit an app to your org**. To submit an app requires approval from your IT admin.
### Teams Developer Portal
-Use the [Teams Developer Portal](https://dev.teams.microsoft.com/) to upload and publish an app to your organization. This requires approval from your IT admin. For more information, see [Manage your apps with the Developer Portal for Microsoft Teams](../concepts/build-and-test/teams-developer-portal.md).
+Use the [Teams Developer Portal](https://dev.teams.microsoft.com/) to upload and publish an app for your organization. Uploading and publishing an app requires approval from your IT admin. For more information, see [Manage your apps with the Developer Portal for Microsoft Teams](../concepts/build-and-test/teams-developer-portal.md).
### Microsoft Teams Admin Center
As a global admin, you can upload and pre-install the app package from [Microsof
## Multitenant distribution
-The [Microsoft commercial marketplace](https://appsource.microsoft.com/) (Microsoft AppSource) submission process for Teams apps enabled for Outlook and Office is same as traditional Teams apps. The only difference is you'll need to use Teams app manifest [version 1.13](../tabs/how-to/using-teams-client-sdk.md) in your app package, which introduces support for Teams apps that run across Microsoft 365.
+The [Microsoft AppSource](https://appsource.microsoft.com/) (Microsoft commercial marketplace) submission process for Teams apps enabled for Outlook and Office is same as for traditional Teams apps. The only difference is that you need to use Teams app manifest [version 1.13](../tabs/how-to/using-teams-client-sdk.md) in your app package, which introduces support for Teams apps that run across Microsoft 365.
> [!TIP]
-> Use Teams Developer Portal to [validate your app package](https://dev.teams.microsoft.com/validation) to resolve any errors or warnings before submitting to the Teams store (via [Microsoft Partner Network](https://partner.microsoft.com/)).
+> Use Teams Developer Portal to [validate your app package](https://dev.teams.microsoft.com/validation) to resolve any errors or warnings before submitting it to the Teams store (via [Microsoft Partner Network](https://partner.microsoft.com/)).
To get started, see [Distribute your Microsoft Teams app](../concepts/deploy-and-publish/apps-publish-overview.md).
platform Define Search Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md
The search command is invoked from any one or both of the following locations:
* Compose message area: The buttons at the bottom of the compose message area. * Command box: By @mentioning in the command box.
- When a search command is invoked from the compose message area, the user sends the results to the conversation. When it's invoked from the command box, the user interacts with the resulting card, or copies it for use elsewhere.
+When a search command is invoked from the compose message area, the user sends the results to the conversation. When it's invoked from the command box, the user interacts with the resulting card, or copies it for use elsewhere.
The following image displays the invoke locations of the search command:
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: Learn how message extensions are used, it's types, and scenarios where it's used on the Microsoft Teams platform. Samples on action and searched based message extension.
+description: Learn how message extensions are used, its types, and scenarios where its used on the Microsoft Teams platform. Samples on action and searched based message extension.
ms.localizationpriority: medium
A message extension consists of a web service that you host and an app manifest,
> [!NOTE] > Though you can create the web service manually, use [Bot Framework SDK](https://github.com/microsoft/botframework-sdk) to work with the protocol.
-In the app manifest for Teams app, a single message extension is defined with up to 10 different commands. Each command defines a type, such as action or search and the locations in the client from where it is invoked. The invoke locations are compose message area, command bar, and message. On invoke, the web service receives an HTTPS message with a JSON payload including all the relevant information. Respond with a JSON payload, allowing the Teams client to know the next interaction to enable.
+In the app manifest for Teams app, a single message extension is defined with up to 10 different commands. Each command defines a type, such as action or search and the locations in the client from where it's invoked. The invoke locations are compose message area, command bar, and message. On invoke, the web service receives an HTTPS message with a JSON payload including all the relevant information. Respond with a JSON payload, allowing the Teams client to know the next interaction to enable.
## Types of message extension commands
async handleTeamsMessagingExtensionQuery(context, query) {
||-|-||| | Message extension with action-based commands | This sample illustrates how to build an action-based message extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/51.teams-messaging-extensions-action) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/51.teams-messaging-extensions-action) | | Message extension with search-based commands | This sample illustrates how to build a Search-based Message Extension. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/50.teams-messaging-extensions-search) | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/50.teams-messaging-extension-search) |
-|Message extension action for task scheduling|This sample illustrates how to schedule a task from message extension action command and get a reminder card at a scheduled date and time.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/nodejs)|
+|Message extension action for task scheduling|This sample illustrates how to schedule a task from message extension action command and get a reminder card at a scheduled date and time.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/nodejs)| NA |
## Next step
platform Access Teams Context https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/access-teams-context.md
If your page makes use of any of these values, the value of `channel.membershipT
When the content UX is loaded in a shared channel, use the data received from `getContext` call for shared channel changes. If tab makes use of any of the following values, you must populate the `channelType` field to determine if the tab is loaded in a shared channel, and respond appropriately. For shared channels, the `groupId` value is `null`, since the host team's groupId doesn't accurately reflect the true membership of the shared channel. To address this, the `hostTeamGroupID` and `hostTenantID` properties are newly added and useful for making Microsoft Graph API calls to retrieve membership. `hostTeam` refers to the Team that created the shared channel. `currentTeam` refers to Team that the current user is accessing the shared channel from.
-For more information about these concepts, see [Shared channels](~/concepts/build-and-test/shared-channels.md).
+For more information about these concepts, see [shared channels](~/concepts/build-and-test/shared-channels.md).
Use the following `getContext` properties in shared channels:
Use the following `getContext` properties in shared channels:
|`userObjectId`| The property describes current userΓÇÖs ID.| |`userPrincipalName`| The property describes the current userΓÇÖs UPN.|
-For more information on shared channels, see [Shared channels](~/concepts/build-and-test/shared-channels.md).
+For more information on shared channels, see [shared channels](~/concepts/build-and-test/shared-channels.md).
## Handle theme change
platform Tab Sso Graph Api https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/tab-sso-graph-api.md
You can configure authentication for multiple platforms as long as the URL is un
### To configure authentication for a platform
-1. Open the app you registered in the the [Azure portal](https://ms.portal.azure.com/).
+1. Open the app you registered in the [Azure portal](https://ms.portal.azure.com/).
1. Select **Manage** > **Authentication** from the left pane.
platform Create Channel Group Tab https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-channel-group-tab.md
Ensure that you keep the command prompt with ngrok running and make a note of th
1. Open **Apps** and select **Import app**.
-<! TBD: This steps seems to be removed from main now so commenting it for now.
+ <! TBD: This steps seems to be removed from main now so commenting it for now.
-1. Select **Import an existing app** in the **Manifest editor** to begin updating the app package for your tab. The source code comes with its own partially complete manifest. The name of your app package is `tab.zip`. It is available from the following path:
->
+ Select **Import an existing app** in the **Manifest editor** to begin updating the app package for your tab. The source code comes with its own partially complete manifest. The name of your app package is `tab.zip`. It is available from the following path:
+ >
1. The name of your app package is `tab.zip`. It's available in the following path:
platform Configuration Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/configuration-page.md
The application must reference the [Microsoft Teams JavaScript client SDK](/java
An example of a configuration page is shown in the following image:
-<img src="~/assets/images/tab-images/configuration-page.png" alt="Configuration page" width="400"/>
The following code is an example of corresponding code for the configuration page:
Choose either **Select Gray** or **Select Red** button in the configuration page
The following image displays the tab content with **Gray** icon selected:
-<img src="~/assets/images/tab-images/configure-tab-with-gray.png" alt="Configure tab with select gray" width="400"/>
The following image displays the tab content with **Red** icon selected:
-<img src="~/assets/images/tab-images/configure-tab-with-red.png" alt="Configure tab with select red" width="400"/>
Choosing the appropriate button triggers either `saveGray()` or `saveRed()`, and invokes the following:
platform Content Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/content-page.md
Starting with [manifest schema v1.7](../../../resources/schema/manifest-schema.m
> [!NOTE] >
-> * The behavior on mobile clients isn't configurable through the native loading indicator property. Mobile clients show this indicator by default across content pages and iframe-based task modules. This indicator on mobile is shown when a request is made to fetch content and gets dismissed as soon as the request gets completed.
+> The behavior on mobile clients isn't configurable through the native loading indicator property. Mobile clients show this indicator by default across content pages and iframe-based task modules. This indicator on mobile is shown when a request is made to fetch content and gets dismissed as soon as the request gets completed.
If you indicate `showLoadingIndicator : true` in your app manifest, then all tab configuration, content, removal pages, and all iframe-based task modules must follow these steps:
platform Tab Requirements https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/tab-requirements.md
Title: Prerequisites
-description: In this article, learn the prerequisites to build Microsoft Teams personal, channel, or group tab tab. Know the tools required to build your tab.
+description: In this article, learn the prerequisites to build Microsoft Teams personal, channel, or group tab. Know the tools required to build your tab.
ms.localizationpriority: high
Ensure that you adhere to the following prerequisites while building your Teams
* Style your tabs based on the Teams client's theme, design, and intent. Tabs work best when they're built to address a specific need and focus on a small set of tasks or a subset of data that is relevant to the tab's channel location.
-* Within your content page, add a reference to [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client) using script tags. After your page loads, make a call to `app.initialize()`, otherwise your page will not be displayed.
+* Within your content page, add a reference to [Microsoft Teams JavaScript client SDK](/javascript/api/overview/msteams-client) using script tags. After your page loads, make a call to `app.initialize()`, otherwise your page won't be displayed.
* For authentication to work on mobile clients, you must upgrade to Teams JavaScript SDK 1.4.1 and later.
Ensure that you adhere to the following prerequisites while building your Teams
| &nbsp; | [Node.js](https://nodejs.org/en/download/) | Back-end JavaScript runtime environment. Use the latest v16 LTS release.| | &nbsp; | [Microsoft Edge](https://www.microsoft.com/edge) (recommended) or [Google Chrome](https://www.google.com/chrome/) | A browser with developer tools. | | &nbsp; | [Visual Studio Code](https://code.visualstudio.com/download) | JavaScript, TypeScript, or SharePoint Framework (SPFx) build environments. |
-| &nbsp; | [Visual Studio 2019](https://visualstudio.com/download), **ASP.NET and web development**, or **.NET Core cross-platform development** workload | .NET. You can install the free community edition of Visual Studio 2019. |
+| &nbsp; | [Visual Studio 2022](https://visualstudio.microsoft.com), **ASP.NET and web development**, or **.NET Core cross-platform development** workload | .NET. You can install the free community edition of Visual Studio 2022. |
| &nbsp; | [Git](https://git-scm.com/downloads) | Git to use the sample apps repo from GitHub. | | &nbsp; | [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams/download-app) | Microsoft Teams to collaborate with everyone you work with through apps for chat, meetings, call - all in one place. | | &nbsp; | [ngrok](https://ngrok.com/download) | Ngrok is a reverse proxy software tool. Ngrok creates a tunnel to your locally running web server's publicly available HTTPS endpoints. Your server's web endpoints are available during the current session on your computer. When the computer is shut down or goes to sleep, the service is no longer available. |
platform Tabs Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/tabs-link-unfurling.md
When the user enters a URL on the Teams desktop client, the bot is invoked and r
The following images display a stage opened from an Adaptive Card:
-[![Open a stage from Adaptive Card](~/assets/images/tab-images/open-stage-from-adaptive-card1.png)](~/assets/images/tab-images/open-stage-from-adaptive-card1.png#lightbox)
-[![Open a stage](~/assets/images/tab-images/open-stage-from-adaptive-card2.png)](~/assets/images/tab-images/open-stage-from-adaptive-card2.png#lightbox)
### Example
platform Add Capability https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-capability.md
The following table shows the changes that can be seen in the files of your app
|Bot, message extension and tab|Includes bot or tab-related&nbsp;information in the teamsfx and provision files that are for integrating Azure functions.|Files under `templates/azure/teamsfx` are updated, and `templates/azure/provision/xxx`.bicep files are regenerated.| |Bot, message extension and tab|Ensures your project is set with right configurations for newly added capability.|Files under `.fx/config` are regenerated|
-## Step-by-step guide
+## Step-by-step guides
* Follow the [step-by-step](../sbs-gs-commandbot.yml) guide to build command bot in Microsoft Teams.
platform Debug Local https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-local.md
Perform the following steps using the Teams Toolkit to debug your app after you
> You can also use hot reload function of Visual Studio during debug. Learn more by visiting <https://aka.ms/teamsfx-vs-hotreload>. > [!NOTE]
- > Ensure to post HTTP request to '<http://localhost:5130/api/notification>' to trigger notification, when you're debugging Notification Bot app. If you've selected HTTP trigger when creating the project, you can use any API tools such as curl (Windows Command Prompt), Postman, and so on.
+ > Ensure to post HTTP request to `http://localhost:5130/api/notification` to trigger notification, when you're debugging Notification Bot app. If you've selected HTTP trigger when creating the project, you can use any API tools such as curl (Windows Command Prompt), Postman, and so on.
> [!TIP] > If you make any changes to Teams app manifest file (/templates/appPackage/manifest.template.json), ensure that you perform the Prepare Teams App Dependencies command. Before you try to run the Teams app again locally.
platform Debug Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-overview.md
Teams Toolkit automates app startup services, initiates debug, and side loads Te
| &nbsp; | Visual Studio 2022 version 17.3 | You can install the enterprise edition of Visual Studio, and install the "ASP.NET "workload and Microsoft Teams Development Tools. | | &nbsp; | Teams Toolkit | A Visual Studio extension that creates a project scaffolding for your app. Use latest version. | | &nbsp; | [Microsoft Teams](https://www.microsoft.com/microsoft-teams/download-app) | Microsoft Teams to collaborate with everyone you work with through apps for chat, meetings, call - all in one place. |
-| &nbsp; | [Prepare your Microsoft 365 tenant](../concepts/build-and-test/prepare-your-o365-tenant.md) | Access to Teams account with the appropriate permissions to install an app. |
-| &nbsp; | [Microsoft 365 developer account](/../concepts/build-and-test/prepare-your-o365-tenant) | Access to Teams account with the appropriate permissions to install an app. |
+| &nbsp; | [Prepare your Microsoft 365 tenant](~/concepts/build-and-test/prepare-your-o365-tenant.md) | Access to Teams account with the appropriate permissions to install an app. |
+| &nbsp; | [Microsoft 365 developer account](~/concepts/build-and-test/prepare-your-o365-tenant.md) | Access to Teams account with the appropriate permissions to install an app. |
| &nbsp; | Azure Tools and [Microsoft Azure CLI](/cli/azure/install-azure-cli) | Azure tools to access stored data or to deploy a cloud-based backend for your Teams app in Azure. | |&nbsp; | **Optional** | &nbsp; | |&nbsp; |[Ngrok](https://ngrok.com/) | Ngrok is used to forward external messages from Azure Bot Framework to your local machine.|
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Discover Microsoft Teams platform features that are generally available (GA). Yo
:::column-end::: :::column span="2":::
-Microsoft Teams platform features that are available to all app developers.
+Teams platform features that are available to all app developers.
**2022 October**
Microsoft Teams platform features that are available to all app developers.
| 02/24/2022 | Introduced step-by-step guide to create Outgoing Webhooks | Build webhooks and connectors > Create Outgoing Webhooks > [Create Outgoing Webhooks](sbs-outgoing-webhooks.yml)| | 02/23/2022 | Microsoft Teams store ranking parameters| Distribute your app > Publish to the Teams store > [Microsoft Teams store ranking parameters](concepts/deploy-and-publish/appsource/post-publish/teams-store-ranking-parameters.md)| | 02/18/2022 | Introduced extensive Glossary for the Microsoft Teams Developer Documentation to help you find the definition about a term quickly | [Glossary](~/get-started/glossary.md) |
-| 02/18/2022 | Updated the Overview module for mapping Teams app to organizational goals, user story, and exploring Teams app features | [Overview > Teams app that fits](overview.md) |
-| 02/18/2022 | Updated the App fundamentals module to Plan your app to include mapping use cases to Teams features, and app planning checklist | [Plan your app > Overview](~/concepts/app-fundamentals-overview.md) |
+| 02/18/2022 | Updated the Overview module for mapping Teams app to organizational goals, user story, and exploring Teams app features | Overview > [Teams app that fits](overview.md) |
+| 02/18/2022 | Updated the App fundamentals module to Plan your app to include mapping use cases to Teams features, and app planning checklist | Plan your app > [Overview](~/concepts/app-fundamentals-overview.md) |
| 02/17/2022 | What to expect after you submit your app?| Distribute your app > Publish to the Teams store > [Overview](concepts/deploy-and-publish/appsource/publish.md) | | 02/15/2022 | Introduced step-by-step guide how to upload files to Teams from a bot | Build bots > Send and receive files > [Step-by-step guide how to upload files to Teams from a bot](sbs-file-handling-in-bot.yml) | | 02/11/2022 | Shared meeting stage| ΓÇó Build apps for Teams meetings > [Shared meeting stage](apps-in-teams-meetings/build-tabs-for-meeting.md) </br> ΓÇó Build apps for Teams meetings > [Build apps for Teams meetings](apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md) </br> ΓÇó App manifest > Public developer preview > [Developer preview manifest schema](resources/schem)|
Explore updates from the previous GA releases listed here.
| 04/23/2019 | Action-based Message Extensions are now available. | [Action-based Message Extensions](~/concepts/messaging-extensions/create-extensions.md) | | 02/18/2019 | Creating deep links to private chat. | [Deep linking to a chat](concepts/build-and-test/deep-links.md#navigate-to-a-chat) | | 01/23/2019 | Surfacing SKU and licenceType information in the tab context. | [Tab Context](~/concepts/tabs/tabs-context.md) |
-|
+ </details> <br>
Explore updates from the previous GA releases listed here.
| 03/15/2018 | Refactored documentation for cards. |[Cards](~/concepts/cards/cards.md), [Card actions](~/concepts/cards/cards-actions.md), [Card formatting](~/concepts/cards/cards-format.md), [Card reference](~/concepts/cards/cards-reference.md)| | 02/27/2018 | Added sample code to demonstrate AsTeamsChannelAccounts() method. |[Get context for your bot](~/concepts/bots/bots-context.md)| | 02/05/2018 | Added topics for getting started using C#. |[Get started on the Microsoft Teams platform with C#/.NET](./get-started/get-started-dotnet-app-studio.md)|
-|
+ </details> </details> </details>
Discover Microsoft Teams platform features that are deprecated. You can now get
:::column-end::: :::column span="2":::
-Microsoft Teams platform features that are not available.
+Teams platform features that are not available.
**2022 August**
You can get the latest Teams platform updates by configuring to the [RSS feed](h
### To configure RSS feed
-1. Open Microsoft Teams.
+1. Open Teams.
1. Select **Teams** from the left pane. 1. Select a channel in the team. 1. Select ellipsis &#x25CF;&#x25CF;&#x25CF; and from the dropdown list, select **Connectors**.