Updates from: 11/04/2022 02:48:57
Service Microsoft Docs article Related commit history on GitHub Change details
platform Conversation Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/conversations/conversation-messages.md
Each message in a conversation is an `Activity` object of type `messageType: mes
Basic conversations are handled through the Bot Framework connector, a single REST API. This API enables your bot to communicate with Teams and other channels. The Bot Builder SDK provides the following features: * Easy access to the Bot Framework connector.
-* Additional functionality to manage conversation flow and state.
+* Functionality to manage conversation flow and state.
* Simple ways to incorporate cognitive services, such as natural language processing (NLP). Your bot receives messages from Teams using the `Text` property and it sends single or multiple message responses to the users.
Ensure to handle these errors appropriately in your Teams app. The following tab
| 400 | **Code**: `Bad Argument` <br/> **Message**: *scenario specific | Invalid request payload provided by the bot. See error message for specific details. | No | Re-evaluate request payload for errors. Check returned error message for details. | | 401 | **Code**: `BotNotRegistered` <br/> **Message**: No registration found for this bot. | The registration for this bot wasn't found. | No | Verify the bot ID and password. Ensure that the bot ID (AAD ID) is registered in the Teams Developer Portal or via Azure bot channel registration in Azure with 'Teams' channel enabled.| | 403 | **Code**: `BotDisabledByAdmin` <br/> **Message**: The tenant admin disabled this bot | Tenant admin has blocked interactions between user and the bot app. Tenant admin needs to allow the app for the user inside of app policies. For more information, see [app policies](/microsoftteams/app-policies). | No | Stop posting to conversation until interaction with bot is explicitly initiated by a user in the conversation indicating that the bot is no longer blocked. |
-| 403 | **Code**: `BotNotInConversationRoster` <br/> **Message**: The bot isn't part of the conversation roster. | The bot isn't part of the conversation. App needs to be reinstalled in conversation. | No | Before attempting to send additional conversation requests, wait for an [`installationUpdate`](~/bots/how-to/conversations/subscribe-to-conversation-events.md#install-update-event) event, which indicates that the bot has been re-added.|
+| 403 | **Code**: `BotNotInConversationRoster` <br/> **Message**: The bot isn't part of the conversation roster. | The bot isn't part of the conversation. App needs to be reinstalled in conversation. | No | Before attempting to send another conversation request, wait for an [`installationUpdate`](~/bots/how-to/conversations/subscribe-to-conversation-events.md#install-update-event) event, which indicates that the bot has been re-added.|
| 403 | **Code**: `ConversationBlockedByUser` <br/> **Message**: User blocked the conversation with the bot. | User has blocked the bot in personal chat or a channel through moderation settings. | No | Delete the conversation from cache. Stop attempting to post to conversations until interaction with bot is explicitly initiated by a user in the conversation, indicating that the bot is no longer blocked. |
+| 403 |**Code**: `InvalidBotApiHost` <br/> **Message**: Invalid bot api host. For GCC tenants please call `https://smba.infra.gcc.teams.microsoft.com`.|The bot called the public API endpoint for a conversation that belongs to a GCC tenant.| No | Update the service URL for the conversation to `https://smba.infra.gcc.teams.microsoft.com` and retry the request.|
| 403 | **Code**: `NotEnoughPermissions` <br/> **Message**: *scenario specific | Bot doesn't have required permissions to perform the requested action. | No | Determine the required action from the error message. | | 404 | **Code**: `ActivityNotFoundInConversation` <br/> **Message**: Conversation not found. | The message ID provided couldn't be found in the conversation. Message doesn't exist or it has been deleted. | No | Check if message ID sent is an expected value. Remove the ID if it was cached. | | 404 | **Code**: `ConversationNotFound` <br/> **Message**: Conversation not found. | Conversation wasn't found as it doesn't exist or has been deleted. | No | Check if conversation ID sent is an expected value. Remove the ID if it was cached. |
The general retry guidance for each status code is listed in the following table
|Status code | Retry strategy | |-|--|
+| 403 | Retry by calling the GCC API `https://smba.infra.gcc.teams.microsoft.com` for `InvalidBotApiHost`.|
| 412 | Retry using exponential backoff. | | 429 | Retry using `Retry-After` header to determine wait time in seconds and in between requests, if available. Otherwise, retry using exponential backoff with thread ID, if possible. | | 502 | Retry using exponential backoff. |
platform Messaging Extensions Common https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/includes/messaging-extensions/messaging-extensions-common.md
A message extension is a cloud-hosted service that listens to user requests and responds with structured data, such as a [card](~/task-modules-and-cards/what-are-cards.md). You integrate your service with Microsoft Teams via Bot Framework `Activity` objects. Our .NET and Node.js extensions for the Bot Builder SDK can help you add message extension functionality to your app.
-![Diagram of message flow for message extensions](~/assets/images/compose-extensions/ceflow.png)
### Register in the Bot Framework
platform Bots Notification Only https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-notification-only.md
To enable this, set `isNotificationOnly` to `true`.
## Best practices and limitations
-* Notification-only bots use proactive messaging to communicate with the user. For more information, see [Proactive messaging for bots](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md).
+Notification-only bots use proactive messaging to communicate with the user. For more information, see [Proactive messaging for bots](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md).
platform Bots With Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-with-tabs.md
In general, the recommended approach is to sign the user in with the bot using t
This flow works best if your identity provider implements the OAuth 2.0 protocol. You can then associate the Teams user ID with the userΓÇÖs credentials from your own identity service.
- ![Associating identities](~/assets/images/bots/associating_contexts.png)
+ :::image type="content" source="../../assets/images/bots/associating_contexts.png" alt-text="Screenshot shows the associating identities.":::
## Constructing deep links to tabs in messages from your bot
You want to use tabs to show more content that can fit inside of a card, or prov
Deep links rely on an entityId, which is an opaque value that maps to a unique entity in your system. When the tab is created, you store some simple state. For example, flag on your backend indicating the tab is created in the channel. When your bot constructs a message, it can target the entityId associated with that tab. > [!NOTE]
-> in personal chats, because tabs are ΓÇ£staticΓÇ¥ and installed with the app, you can always assume their existence and thus construct deep links accordingly.
+> In personal chats, because tabs are *static* and installed with the app, you can always assume their existence and thus construct deep links accordingly.
## Sending notifications for tab updates
platform Create Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/create-extensions.md
public class MessagesController : ApiController
} ``` ++ ## See also [Bot Framework samples](https://github.com/Microsoft/BotBuilder-Samples/blob/master/README.md)
platform Search Extensions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/messaging-extension-v3/search-extensions.md
Last updated 07/20/2019
Search based message extensions allow you to query your service and post that information in the form of a card, right into your message.
-![Example of message extension card](~/assets/images/compose-extensions/ceexample.png)
The following sections describe how to do this:
The remainder of your handler for `onQuery` prompts the user for information, di
The `onQuerySettingsUrl` and `onSettingsUpdate` events work together to enable the **Settings** menu item.
-![Screenshots of locations of Settings menu item](~/assets/images/compose-extensions/compose-extension-settings-menu-item.png)
Your handler for `onQuerySettingsUrl` returns the URL for the configuration page; after the configuration page closes, your handler for `onSettingsUpdate` accepts and saves the returned state. This is the one case in which `onQuery` *doesn't* receive the response from the configuration page.
The request parameters are found in the value object, which includes the followi
As an alternative (or in addition) to searching your external service, you can use a URL inserted into the compose message box to query your service and return a card. In the screenshot below a user has pasted in a URL for a work item in Azure DevOps, which the message extension has resolved into a card.
-![Example of link unfurling](~/assets/images/compose-extensions/messagingextensions_linkunfurling.png)
To enable your message extension to interact with links this way, you'll first need to add the `messageHandlers` array to your app manifest as in the example below:
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Overview.md
The following image shows the current inconsistent action model:
:::image type="content" source="~/assets/images/adaptive-cards/current-teams-outlook-action-model.png" alt-text="Inconsistent action model":::
-With the Universal Actions for Adaptive Cards, you can use `Action.Execute` for action handling across different platforms. `Action.Execute` works across hubs including Teams and Outlook. In addition, an Adaptive Card can be returned as response for an `Action.Execute` triggered invoke request.
+With the Universal Actions for Adaptive Cards, you can use `Action.Execute` for action handling across different platforms.
+
+`Action.Execute` works across all hubs, including Teams and Outlook and isn't a replacement of `Action.Submit`. For example, if you want an external system to do an action and the result of the action must be sent back to your conversation using [Messaging Extension](../../../messaging-extensions/what-are-messaging-extensions.md), `Action.Execute` isn't supported.
+
+For [link unfurling cards](../../../messaging-extensions/how-to/link-unfurling.md) such as hero and thumbnail cards, you must call `Action.Submit`.
+
+In addition, an Adaptive Card can be returned as a response for an `Action.Execute` triggered invoke request.
The following image shows the new Universal Action model:
platform Sequential Workflows https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Sequential-Workflows.md
var adaptiveCardResponse = JObject.FromObject(new
|Sample name | Description | .NETCore | Node.js | |-|--|--|--|
-| Teams catering bot | Create a bot that accepts food order using Adaptive Cards. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-teams-catering/csharp)| Not yet available |
+| Teams catering bot | Create a bot that accepts food order using Adaptive Cards. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-teams-catering/csharp)| NA |
| Sequential Workflows Adaptive Cards | Demonstrate how to implement Sequential Workflows, User Specific Views, and up to date Adaptive Cards in bots. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/nodejs) | ## See also
platform Work With Universal Actions For Adaptive Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/Universal-actions-for-adaptive-cards/Work-with-Universal-Actions-for-Adaptive-Cards.md
If you set the card version to less than 1.4 and use either or both, `refresh` p
| Client | Behavior | | :-- | :-- |
-| Teams | Your card stops working. Card is not refreshed and `Action.Execute` does not render depending on the version of the Teams client. To ensure maximum compatibility in Teams, define `Action.Execute` with an `Action.Submit` in the fallback property. |
+| Teams | Your card stops working. Card isn't refreshed and `Action.Execute` doesn't render depending on the version of the Teams client. To ensure maximum compatibility in Teams, define `Action.Execute` with an `Action.Submit` in the fallback property. |
For more information on how to support older clients, see [backward compatibility](#backward-compatibility).
The following are the features of UserIds in refresh:
* UserIds is an array of user MRIs, which is part of the `refresh` property in Adaptive Cards.
-* If the `userIds` list property is specified as `userIds: []` in the refresh section of the card, the card is not automatically refreshed. Instead, a **Refresh Card** option is displayed to the user in the triple dot menu in Teams web client or desktop and in the long press context menu in Teams mobile, that is, Android or iOS to manually refresh the card. Alternatively, you may choose to skip `userIds` in the refresh property altogether in case the scenario involves <=60 members in Teams group chats or channels. The Teams client automatically invokes refresh calls for all the users if the group or channel has <=60 users.
+* If the `userIds` list property is specified as `userIds: []` in the refresh section of the card, the card isn't automatically refreshed. Instead, a **Refresh Card** option is displayed to the user in the triple dot menu in Teams web client or desktop and in the long press context menu in Teams mobile, that is, Android or iOS to manually refresh the card. Alternatively, you may choose to skip `userIds` in the refresh property altogether in case the scenario involves <=60 members in Teams group chats or channels. The Teams client automatically invokes refresh calls for all the users if the group or channel has <=60 users.
* UserIds property is added because channels in Teams can include a large number of members. If all members are viewing the channel at the same time, an unconditional automatic refresh results in many concurrent calls to the bot. The `userIds` property must always be included to identify which users must get an automatic refresh with a maximum of *60 (sixty) user MRIs*.
For more information, see [backward compatibility on Teams](/adaptive-cards/auth
|Sample name | Description | .NETCore | Node.js | |-|--|--|--|
-| Teams catering bot | Create a bot that accepts food order using Adaptive Cards. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-teams-catering/csharp)| Not yet available |
-| Sequential Workflows Adaptive Cards | Demonstrate how to implement Sequential Workflows, User Specific Views, and up to date Adaptive Cards in bots. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/nodejs) .|
+| Teams catering bot | Create a bot that accepts food order using Adaptive Cards. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-teams-catering/csharp)| NA |
+| Sequential Workflows Adaptive Cards | Demonstrate how to implement Sequential Workflows, User Specific Views, and up to date Adaptive Cards in bots. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/bot-sequential-flow-adaptive-cards/nodejs) |
## See also
platform Cards Actions https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-actions.md
The following code shows an example of Adaptive Cards with `invoke` action with
## Code samples
-|S.no|Card| description|.NET|Javascript|Python|Java|
+|S.no|Card| description|.NET|JavaScript|Python|Java|
|:--|:--|:--|--||--|-|
-|1|Using cards|Introduces all card types including thumbnail, audio, media etc. Builds on Welcoming user + multi-prompt bot by presenting a card with buttons in welcome message that route to appropriate dialog.|[.Net Core](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/csharp_dotnetcore/06.using-cards)|[JavaScript](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/06.using-cards)|[Python](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/python/06.using-cards)|[Java](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/java_springboot/06.using-cards)|
-|2|Adaptive cards|Demonstrates how the multi-turn dialog can use a card to get user input for name and age.|[.NET Core](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/csharp_dotnetcore/07.using-adaptive-cards)|[JavaScript](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/07.using-adaptive-cards)|[Python](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/python/07.using-adaptive-cards)|[Java](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/java_springboot/07.using-adaptive-cards)|
+|1|Using cards|Introduces all card types including thumbnail, audio, media etc. Builds on Welcoming user + multi-prompt bot by presenting a card with buttons in welcome message that route to appropriate dialog.|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/csharp_dotnetcore/06.using-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/06.using-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/python/06.using-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/java_springboot/06.using-cards)|
+|2|Adaptive cards|Demonstrates how the multi-turn dialog can use a card to get user input for name and age.|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/csharp_dotnetcore/07.using-adaptive-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/javascript_nodejs/07.using-adaptive-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/python/07.using-adaptive-cards)|[View](https://github.com/microsoft/BotBuilder-Samples/blob/main/samples/java_springboot/07.using-adaptive-cards)|
> [!NOTE] > Media elements are not supported for adaptive card in Teams
platform Teamsfx Preview And Customize App Manifest https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/TeamsFx-preview-and-customize-app-manifest.md
The changes are updated to Teams Developer Portal.
* [Manage multiple environments](TeamsFx-multi-env.md) * [Reference: Manifest schema for Microsoft Teams](../resources/schem) * [Public developer preview for Microsoft Teams](../resources/dev-preview/developer-preview-intro.md)- * [Provision cloud resources using Visual Studio](provision-cloud-resources.md)-
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio)
platform Add API Connection https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/add-API-connection.md
Teams Toolkit helps you bootstrap sample code to access the APIs, if you don't h
## See also
-* [Publish Teams apps using Teams Toolkit](publish.md)
+[Publish Teams apps using Teams Toolkit](publish.md)
platform Create New Project https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/create-new-project.md
You can see Teams app templates already populated in Teams Toolkit for various T
* [Prerequisites for all types of environment and create your Teams app](tools-prerequisites.md) * [Prepare to build apps using Microsoft Teams Toolkit](build-environments.md) * [Provision cloud resources using Visual Studio](provision-cloud-resources.md)
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio)
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.md) | 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 Deploy https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/deploy.md
The other way to preview your app:
* [Create and deploy an Azure cloud service](/azure/cloud-services/cloud-services-how-to-create-deploy-portal) * [Create multi-capability Teams apps](add-capability.md) * [Add cloud resources to Microsoft Teams app](add-resource.md)
-* [Create new Teams app in Visual Studio](create-new-teams-app-for-Visual-Studio.md)
+* [Create new Teams app in Visual Studio](create-new-project.md#create-new-teams-app-in-visual-studio)
* [Provision cloud resources using Visual Studio](provision-cloud-resources.md) * [Edit Teams app manifest using Visual Studio](VS-TeamsFx-preview-and-customize-app-manifest.md)
-* [Debug your Teams app locally using Visual Studio](debug-teams-app-visual-studio.md)
+* [Debug your Teams app locally using Visual Studio](debug-local.md#debug-your-teams-app-locally-using-visual-studio)
platform Explore Teams Toolkit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/explore-Teams-Toolkit.md
After you have created your Teams Project, you can perform the following functio
|Function |Description | |||
-|Prepare Teams App Dependencies |Before you do a local debug perform this step, it helps you to set up the local debug dependencies and register Teams app in Teams platform. You need a Microsoft 365 account. For more information, see [Debug your Teams app locally using Visual Studio](debug-teams-app-visual-studio.md) |
+|Prepare Teams App Dependencies |Before you do a local debug perform this step, it helps you to set up the local debug dependencies and register Teams app in Teams platform. You need a Microsoft 365 account. For more information, see [Debug your Teams app locally using Visual Studio](debug-local.md) |
|Open Manifest File |To open Teams manifest file, you can hover over the parameters to preview the values. For more information, see [Edit Teams app manifest using Visual Studio](VS-TeamsFx-preview-and-customize-app-manifest.md) | |Update Manifest in Teams Developer Portal |When you update the manifest file, only then you can redeploy the manifest file to Azure without deploying the whole project again. Use this command to update your changes to remote. For more information, see [Edit Teams app manifest using Visual Studio](VS-TeamsFx-preview-and-customize-app-manifest.md) | |Provision to the Cloud |This option helps you to create Azure resources that host your Teams app. For more information, see [Provision cloud resources using Visual Studio](provision-cloud-resources.md) |
-|Deploy to the Cloud |This option helps you to copy your code to the Azure resources created when you did ΓÇ£Provision to the CloudΓÇ¥. For more information, see [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md) |
+|Deploy to the Cloud |This option helps you to copy your code to the Azure resources created when you did ΓÇ£Provision to the CloudΓÇ¥. For more information, see [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio) |
|Preview in Teams |This option launches the Teams web client and lets you preview Teams app in their browser. | |Zip App Package |This option generates a Teams app package in the `Build` folder under the project. You can upload the package to Teams client and run the Teams app. |
After you have created your Teams Project, you can perform the following functio
* [Create a new Teams app using Teams Toolkit](create-new-project.md) * [Prepare to build apps using Microsoft Teams Toolkit](build-environments.md) * [Provision cloud resources using Teams Toolkit](provision.md)
-* [Create new Teams app in Visual Studio](create-new-teams-app-for-Visual-Studio.md)
+* [Create new Teams app in Visual Studio](create-new-project.md#create-new-teams-app-in-visual-studio)
* [Provision cloud resources using Visual Studio](provision-cloud-resources.md)
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio)
<!-- :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/ui-elements.png" alt-text="UI Elements":::
platform Install Teams Toolkit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/install-Teams-Toolkit.md
Now that Teams Toolkit is installed, visit [Create a new Teams project](create-n
* [Prepare to build apps using Microsoft Teams Toolkit](build-environments.md) * [Provision cloud resources using Teams Toolkit](provision.md) * [Deploy Teams app to the cloud](deploy.md)
-* [Create new Teams app in Visual Studio](create-new-teams-app-for-Visual-Studio.md)
+* [Create new Teams app in Visual Studio](create-new-project.md#create-new-teams-app-in-visual-studio)
* [Provision cloud resources using Visual Studio](provision-cloud-resources.md)
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio)
platform Provision https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/provision.md
If you get an insufficient permission error when Teams Toolkit tries to add user
* [Deploy Teams app to the cloud](deploy.md) * [Manage multiple environments](TeamsFx-multi-env.md) * [Collaborate with other developers on Teams project](TeamsFx-collaboration.md)
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md#deploy-teams-app-to-the-cloud-using-visual-studio)
* [Edit Teams app manifest using Visual Studio](VS-TeamsFx-preview-and-customize-app-manifest.md)
-* [Debug Teams app locally for Visual Studio](debug-teams-app-visual-studio.md)
+* [Debug Teams app locally for Visual Studio](debug-local.md#debug-your-teams-app-locally-using-visual-studio)
platform Publish https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/publish.md
The following steps help you to publish the app from Teams Toolkit:
* Select **Publish to Teams** under **DEPLOYMENT** in treeview of Teams Toolkit. * Enter trigger **Teams: Publish to Teams** from command palette.
- :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/select-publish.png" alt-text="Select Publish":::
+ :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/select-publish.png" alt-text="Select Publish":::
-2 Select **Install for your organization**.
+1. Select **Install for your organization**.
- :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/installforyourorganization.png" alt-text="Install for your organization":::
+ :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/installforyourorganization.png" alt-text="Install for your organization":::
- Now the app is successfully published to the admin portal and you see the following notice:
+ Now the app is successfully published to the admin portal and you see the following notice:
- :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/confirm-publish.png" alt-text="Confirm Publish":::
+ :::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/confirm-publish.png" alt-text="Confirm Publish":::
- Now the app is available on the **Manage apps** of Microsoft Teams admin center, where you, and the admin can review and approve it.
+Now the app is available on the **Manage apps** of Microsoft Teams admin center, where you, and the admin can review and approve it.
- > [!NOTE]
- > The app doesn't publish to your organization's app store yet. The step submits the app to the Microsoft Teams admin center where you can approve it for publishing to your organization's app store.
+> [!NOTE]
+> The app doesn't publish to your organization's app store yet. The step submits the app to the Microsoft Teams admin center where you can approve it for publishing to your organization's app store.
### Approve on Admin Center
platform Sideload And Test App https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/sideload-and-test-app.md
For more information, see [Azure service principals guidelines](/azure/active-di
## See also
-* [Publish Teams apps using Teams Toolkit](publish.md)
+[Publish Teams apps using Teams Toolkit](publish.md)
platform Teams Toolkit Fundamentals https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/teams-toolkit-fundamentals.md
zone_pivot_groups: teams-app-platform
Teams Toolkit makes it simple to get started with app development for Microsoft Teams using Visual Studio and Visual Studio Code.
-* Start with a project template or from a sample
-* Save setup time with automated app registration and configuration
-* Run and debug to Teams directly from familiar tools
-* Smart defaults for hosting in Azure using infrastructure-as-code and Bicep
-* Create unique configurations like dev, test, and prod using the Environments feature
-* Bring your app to your organization or the Teams App Store using built-in publishing tools
+* Start with a project template or from a sample.
+* Save setup time with automated app registration and configuration.
+* Run and debug to Teams directly from familiar tools.
+* Smart defaults for hosting in Azure using infrastructure-as-code and Bicep.
+* Create unique configurations like dev, test, and prod using the Environments feature.
+* Bring your app to your organization or the Teams App Store using built-in publishing tools.
:::image type="content" source="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/teams-toolkit-user-journey2.png" alt-text="User Journey of the Teams Toolkit" lightbox="../assets/images/teams-toolkit-v2/teams toolkit fundamentals/teams-toolkit-user-journey2.png":::
Quickly access Teams Developer Portal, where you can configure, distribute, and
## See also
-* [Create new Teams app in Visual Studio](create-new-teams-app-for-Visual-Studio.md)
+* [Create a new Teams app in Visual Studio](create-new-project.md)
* [Provision cloud resources using Visual Studio](provision-cloud-resources.md)
-* [Deploy Teams app to the cloud using Visual Studio](deploy-teams-app.md)
+* [Deploy Teams app to the cloud using Visual Studio](deploy.md)
platform Tools Prerequisites https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/tools-prerequisites.md
Ensure you have the following accounts before you start build your Teams app:
| Accounts | For using| For environment type| | | | |[Microsoft 365 account with valid subscription](#microsoft-365-developer-program)|Teams developer account while developing an app.| JavaScript and SPFx|
-|[Azure account](accounts.md#azure-account-to-host-backend-resources)|Backend resources on Azure.| JavaScript and SPFx|
+|[Azure account](#azure-account)|Backend resources on Azure.| JavaScript and SPFx|
|[SharePoint collection site administrator account](#sharepoint-collection-site-administrator-account) |Deployment for hosting.| SPFx| ### Microsoft 365 developer program