Updates from: 08/12/2022 01:28:14
Service Microsoft Docs article Related commit history on GitHub Change details
platform Teams Together Mode https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-together-mode.md
A scene only app is still an app in Teams. The Scene studio handles the app pack
You must have a basic understanding of the following to use custom Together Mode scenes: * Define scene and seats in a scene.
-* Have a Microsoft Developer account and be familiar with the Teams [Developer Portal](../concepts/build-and-test/teams-developer-portal.md) and App Studio.
+* Have a Microsoft Developer account and be familiar with the Teams [Developer Portal](../concepts/build-and-test/teams-developer-portal.md).
* Understand the [concept of app sideloading](../concepts/deploy-and-publish/apps-upload.md). * Ensure that the Administrator has granted permission to [**Upload a custom app**](../concepts/deploy-and-publish/apps-upload.md) and select all filters as part of App Setup and Meeting policies respectively.
Consider the following practices for a scene building experience:
## Build a scene using the Scene studio
-Microsoft has a Scene studio that allows you to build scenes. It's available on [Scenes Editor - Teams Developer Portal](https://dev.teams.microsoft.com/scenes). This document refers to Scene studio in the Teams Developer Portal. The interface and functionalities are all the same in App Studio Scene Designer.
+Microsoft has a Scene studio that allows you to build scenes. It's available on [Scenes Editor - Teams Developer Portal](https://dev.teams.microsoft.com/scenes). This document refers to Scene studio in the Teams Developer Portal.
A scene in the context of the Scene studio is an artifact that contains the following elements:
platform Add Power Virtual Agents Bot To Teams https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/add-power-virtual-agents-bot-to-teams.md
Power Virtual Agents is a no-code, guided graphical interface solution that empowers every member of your team to create rich, conversational chatbots that easily integrate with the Teams platform. All content authored in Power Virtual Agents renders naturally in Teams. Power Virtual Agents bots engage with users in the Teams native chat canvas. The IT administrators, business analysts, domain specialists, and skilled app developers can design, develop, and publish intelligent virtual agents for Teams without having to setup a development environment. They can create a web service, or directly register with the Bot Framework.
-This document guides you on how to make your chatbot available in Teams through the Power Virtual Agents portal, and add your bot to Teams using App Studio.
+This document guides you on how to make your chatbot available in Teams through the Power Virtual Agents portal, and add your bot to Teams using Developer Portal.
Power Virtual Agents lets you create powerful chatbots that can answer questions posed by your customers, other employees, or visitors to your website or service.
After publishing your bot, add the Teams channel to make the bot available to Te
1. **Generate an App ID for your chatbot** After adding the Teams channel to your chatbot, an **App ID** is generated in the dialog box. The App ID is a unique Microsoft generated identifier for your bot. Save the App ID to create an app package for Teams.
-## Add your bot to Teams using App Studio
+## Add your bot to Teams using Developer Portal
-If [uploading custom apps is enabled](/microsoftteams/admin-settings) in your Teams instance, you can use Teams App Studio to directly upload your chatbot and start using it immediately. To share your chatbot, you can request your admin to make your bot available in the tenant app catalog or you can send your app package to others and ask them to upload it independently.
+If [uploading custom apps is enabled](/microsoftteams/admin-settings) in your Teams instance, you can use Teams Developer Portal to directly upload your chatbot and start using it immediately. To share your chatbot, you can request your admin to make your bot available in the tenant app catalog or you can send your app package to others and ask them to upload it independently.
-1. **Install App Studio in Teams**
-App Studio is a Teams app. Install App Studio from the Teams store that simplifies the process of bot creation and registration in Teams:
+1. **Install Developer Portal in Teams**
- 1. Select the app store icon from Teams instance, and search for **App Studio**.
+ Install Developer Portal from the Teams store that simplifies the process of bot creation and registration in Teams:
- &emsp;&emsp; <img width="450px" alt="Finding App Studio in the Store" src="../../assets/images/get-started/app-studio-store.png"/>
+ 1. Select the app store icon from Teams instance, and search for **Developer Portal**.
- 1. Select the **App Studio** tile and select **Install** in the pop-up dialog box.
+ :::image type="content" source="../../assets/images/tdp/dev-portal-app.png" alt-text="Screenshot shows how to add Developer Portal apps in Teams client." lightbox="../../assets/images/tdp/add-dev-portal.png":::
- &emsp;&emsp; <img width="450px" alt="Installing App Studio" src="../../assets/images/get-started/app-studio-install.png"/>
+ 1. Select the **Developer Portal** and select **Add** in the pop-up dialog box.
-1. **Create the Teams app manifest in App Studio**
-Bots in Teams are defined by an app manifest JSON file that provides the basic information about your bot and its capabilities. In **App Studio**, select **Manifest editor**, and select **Create a new app**.
+ :::image type="content" source="../../assets/images/tdp/home-page-dev-portal.png" alt-text="Screenshot shows home page of the Developer Portal apps in Teams client.":::
- ![create a new app](../../assets/images/get-started/create-new-app.png)
+1. **Create the Teams app manifest in Developer Portal**
-1. **Add your bot details**
-Complete all the required fields. For a full description of each field see [manifest schema definition](../../resources/schem).
+ 1. Bots in Teams are defined by an app manifest JSON file that provides the basic information about your bot and its capabilities. In **Developer Portal**, select **Apps**, and select **New app**.
- ![add app details](../../assets/images/get-started/add-app-details.png)
+ :::image type="content" source="../../assets/images/tdp/create-new-app.png" alt-text="Screenshot shows how to create Teams app manifest in Developer Portal.":::
-1. **Set up your bot**
-To set-up the bot, perform the following steps:
- 1. Open the **Bots** tab.
- 1. Select **Setup** > **Existing bot** and enter the name of your bot.
-
- ![Bot set-up](../../assets/images/get-started/bot-set-up.png)
-
- The following image depicts how to set-up an existing bot:
-
- ![existing bot set-up](../../assets/images/get-started/existing-bot-set-up.png)
+ 1. Enter your app name and select **Save**.
-1. **Add your App ID**
-To add your App ID, perform the following steps:
- 1. Select **Connect to a different bot id** and paste the **App Id** you copied earlier.
- 1. Select **Scope** > **Personal** > **Save**.
+1. **Set up your bot**
- ![add app id](../../assets/images/get-started/add-app-id.png)
+ To set up your bot, perform the following steps:
+ 1. Go to **App features** > **Bots**.
+ 1. Select **Enter a bot ID** and then enter your bot ID.
+ 1. Select required scopes and then select **Save**.
1. **Add valid domains for your bot**
-This step is only required if your bot requires the user to sign in. Select **Domains and permissions** and in the **Valid Domains** field, provide the following input:
+
+ This step is only applicable, if you want your user to sign in to the bot:
+ 1. Go to **Domains** under **Configure** section.
+ 1. Select **Create your first domain** and enter a valid domain.
+ 1. Select **Add**.
```bash token.botframework.com ``` 1. **Test and distribute your bot**
-Open **Test and distribute** tab and select **Install** to add your bot directly to your Teams instance. Alternately, you can download the completed app package to share with Teams users or provide it to your admin to make your bot available in the tenant app catalog.
+
+ Select **Preview in Teams** to add your bot directly to your Teams instance. Alternately, you can download the completed app package to share with Teams users or provide it to your admin to make your bot available in the tenant app catalog.
1. **Start a chat**
-The set-up process for adding your Power Virtual Agents chat bot to Teams is complete. You can now start a conversation with your bot in a personal chat.
+
+ The set up process for adding your Power Virtual Agents chat bot to Teams is complete. You can now start a conversation with your bot in a personal chat.
## Next step
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/authentication/add-authentication.md
The following wizard is displayed:
1. Select the **Add to a team** button. 1. In the next window, select the team where you want to use the bot. 1. Select the **Set up a bot** button.
-1. Select the three dots (&#x25cf;&#x25cf;&#x25cf;) in the left panel. Then select the **App Studio** icon.
+1. Select the three dots (&#x25cf;&#x25cf;&#x25cf;) in the left panel. Then select the **Developer Portal** icon.
1. Select the **Manifest editor** tab. You should see the icon for the bot you uploaded. 1. Also, you should be able to see the bot listed as a contact in the chat list that you can use to exchange messages with the bot.
platform Create A Bot Commands Menu https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/create-a-bot-commands-menu.md
To define a set of core commands that your bot can respond to, you can add a com
## Create a command menu for your bot
-Command menus are defined in your app manifest. You can either use **App Studio** to create them or add them manually in the app manifest.
+Command menus are defined in your app manifest. You can either use **Developer Portal** to create them or add them manually in the app manifest.
-### Create a command menu for your bot using App Studio
+### Create a command menu for your bot using Developer Portal
A prerequisite to create a command menu for your bot is that you must edit an existing app manifest. The steps to add a command menu are the same, whether you create a new manifest or edit an existing one.
-**To create a command menu for your bot using App Studio**
+To create a command menu for your bot using Developer Portal:
-1. Open Teams and select **Apps** from the left pane. In the **Apps** page, search for **App Studio**, and select **Open**.
+1. Open Teams and select **Apps** from the left pane. In the **Apps** page, search for **Developer Portal**, and then select **Open**.
- > [!WARNING]
- > If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022.
+ :::image type="content" source="../../assets/images/tdp/add-dev-portal.png" alt-text="Screenshot shows how to add Developer Portal in Teams client.":::
+
+1. In **Developer Portal**, select the **Apps** tab. If you don't have an existing app package, you can create or import an existing app. For more information, see [Developer Portal for Teams](../../concepts/build-and-test/teams-developer-portal.md).
- :::image type="content" source="conversations/Media/AppStudio.png" alt-text="appstudio-media":::
+1. Select **Apps** tab, select **App features** from the left pane, and then select **Bots**.
-2. In **App Studio**, select the **Manifest editor** tab. If you do not have an existing app package, you can create or import an existing app. For more information, see [update C# app package in App Studio](../../get-started/deploy-csharp-app-studio.md).
+1. Select **Add a command** under **Commands** section.
-3. In the left pane of the **Manifest editor** and in the **Capabilities** section, select **Bots**.
+ :::image type="content" source="../../assets/images/tdp/add-a-bot-command.png" alt-text="Screenshot shows how to add a command for your bot in Developer Portal.":::
-4. In the right pane of the **Manifest editor** and in the **Commands** section, select **Add**. The **New Command** screen appears.
+1. Enter the **Command** that appears as the command menu for your bot.
- :::image type="content" source="media/AppStudio-CommandMenu-Add.png" alt-text="Select the app package" lightbox="media/AppStudio-CommandMenu-Add.png "border="true":::
+1. Enter the **Description** that appears under the command text in the menu. **Description** must be a brief explanation of the purpose of the command.
-5. Enter the **Command text** that must appear as the command menu for your bot.
+1. Select the **Scope** check box and then select **Add**.
+ This defines where the command menu must appear.
-6. Enter the **Help text** that must appear under the command text in the menu. **Help text** must be a brief explanation of the purpose of the command.
-
-7. Select the **Scope** check boxes to select where this command menu must appear, and select **Save**.
-
- :::image type="content" source="media/AppStudio-NewCommandMenu.png" alt-text="App Studio new commands menu button "lightbox="media/AppStudio-NewCommandMenu.png "border="true":::
+ :::image type="content" source="../../assets/images/tdp/bot-command.png" alt-text="Screenshot shows how to add a command, description and scopes for your bot.":::
### Create a command menu for your bot by editing Manifest.json
platform Locally With An Ide https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/debug/locally-with-an-ide.md
Title: Test and debug your bot locally
-description: Learn about testing and debugging your bot locally with an IDE within Teams environment via sideloading and more
+description: Learn about testing and debugging your bot locally with an IDE within Teams environment via sideloading and more.
ms.localizationpriority: medium
When testing your bot, you need to consider both the contexts you want your bot
## Test by uploading to Teams
-The most comprehensive way to test your bot is by creating an app package and uploading it to Teams. This is the only method to test the full functionality available to your bot, across all scopes.
+The most comprehensive way to test your bot is by creating an app package and uploading it to Teams. Uploading the app package to Teams is the only method to test the full functionality available to your bot, across all scopes.
There are two methods for uploading your app:
-* Use [App Studio](~/concepts/build-and-test/app-studio-overview.md).
+* Use [Developer Portal for Teams](~/concepts/build-and-test/teams-developer-portal.md).
* [Create an app package](~/concepts/build-and-test/apps-package.md) manually, and then [upload your app](~/concepts/deploy-and-publish/apps-upload.md). > [!NOTE]
For more information, see [complete instructions on the Bot Framework Emulator](
> [!Important] > Talking to your bot by ID is intended for basic testing purposes only. Any Teams-specific functionality you have added to your bot fails to work.
-Initiate a conversation with your bot by using its ID. When a bot is added through one of these methods, it isn't addressable in channel conversations and you can't take advantage of other Teams app capabilities like tabs or message extensions. Initiate a conversation in one of the following ways:
+Initiate a conversation with your bot by using its ID. When a bot is added through one of these methods, it isn't addressable in channel conversations, and you can't take advantage of other Teams app capabilities like tabs or message extensions. Initiate a conversation in one of the following ways:
* On the [Bot Dashboard](https://dev.botframework.com/bots) page for your bot, under **Channels**, select **Add to Microsoft Teams**. Teams launches a personal chat with your bot.
Initiate a conversation with your bot by using its ID. When a bot is added throu
![Getting the AppID for the bot](~/assets/images/bots_appid_botframework.png)
- 2. Open Microsoft Teams, on the **Chat** pane, select the **Add chat** icon. In **To:**, paste your bot's Microsoft App ID.
+ 2. Open Microsoft Teams, on the Chat pane, selects the **Add chat** icon. In **To:**, paste your bot's Microsoft App ID.
![Uploading bots](~/assets/images/bots_uploading.png)
To stop your bot from receiving messages, go to your **Bot Dashboard** and edit
## Delete a bot from Teams
-To remove your bot completely from Teams, go to your **Bot Dashboard** and edit the Teams channel. Choose the **Delete** button at the bottom. This prevents users from discovering, adding, and interacting with your bot. This doesn't remove the bot from other user's Teams instances, however, it stops functioning for them as well.
+To remove your bot completely from Teams, go to your **Bot Dashboard** and edit the Teams channel. Choose the **Delete** button at the bottom. Deleting a bot from Teams prevents users from discovering, adding, and interacting with your bot. Deleting a bot from Teams doesn't remove the bot from other user's Teams instances, however, it stops functioning for them as well.
## See also
platform App Studio Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/app-studio-overview.md
- Title: Get started with App Studio for Microsoft Teams
-description: In this article, you'll learn how to build, and manage your apps with app studio for Microsoft Teams and installing app studio.
---
-# Manage your apps with App Studio for Microsoft Teams
-
-> [!WARNING]
-> **Try the Developer Portal**: App Studio has evolved. Configure, distribute, and manage your Teams apps with the new [Developer Portal](https://dev.teams.microsoft.com/). <br> App Studio is deprecated on August 01, 2022.
-
-App Studio makes it easy to start creating or integrating your own Microsoft Teams apps, whether you develop custom apps for your enterprise or SaaS applications for teams around the world by streamlining the creation of the manifest and package for your app and providing useful tools like the Card Editor and a React control library.
-
-> [!IMPORTANT]
-> App Studio is currently not available in the following types of Teams orgs:
->
-> * Government Community Cloud (GCC)
-> * GCC High
-> * DoD
-
-## Installing App Studio
-
-App Studio is a Teams app, which can be found in the Teams store. Follow this link for direct download [App Studio](https://aka.ms/InstallTeamsAppStudio). You can also find the app in the app store.
-
-In the store, search for App Studio.
--
-Select the App Studio tile to open the app install page:
--
-Select **install**.
--
-Once you are in App Studio, select on the **Manifest editor** tab where you can either import an existing app or create a new app.
-
-## App Studio Features
-
-This section covers features, such as conversation, manifest editor, details, and capabilities. You can customize your capabilities using app customization.
-
-### Conversation
-
-This is where you can see what [cards you create in App Studio](#card-editor) look like in Teams when you test them by sending them to yourself.
-
-### Manifest Editor
-
-As mentioned earlier, the most significant part of a Teams app package is its manifest.json file. This file, which must conform to the [Teams App schema](~/resources/schem), contains metadata, which allows Teams to correctly present your app to users.
-
-The Manifest Editor tab in App Studio simplifies creating the manifest, allowing you to describe the app, upload your icons, add app capabilities, and produce a .zip file, which can easily be uploaded into Teams for testing or distributed for others to use. App Studio doesn't produce functional code for your app, or host your app. Your app must already be hosted and running at the URL listed in the manifest for the app upload process to result in a working app.
-
-#### Details
-
-The details section of the Manifest Editor defines the high-level description of the app you're making. This includes things such as the appΓÇÖs name, description, and visual branding. You can automatically generate a GUID for your app and provide URLs for your privacy statement and terms of use.
-
-#### Capabilities
-
-The capabilities section of the Manifest Editor is where the app's capabilities are defined and where details of each of those capabilities are listed.
-
-> [!NOTE]
-> As a best practice, you must provide customization guidelines for app users and customers to follow when customizing your app. For more information, see [customize apps in Microsoft Teams](/MicrosoftTeams/customize-apps).
-
-##### Tabs
-
-* **Team Tabs.** A team tab becomes part of a channel and provides quick access to team information and resources. For example, the Planner tab for a channel contains a single plan; the Power BI tab maps to a specific report. Users can drill down to the relevant context, but they shouldn't be able to navigate outside the tab. The Power BI tab, for instance, doesn't enable navigation to other Power BI reports, but it does enable the *Go to website* button that launches the report in the main Power BI website.
-
- For team tabs, you must provide a *Configuration URL* to present options and gather information so users can customize the content and experience of your tab. This iframed HTML page is displayed when a user first adds the tab to a channel.
-
- You must also provide any additional domains that the tab expects to load from or link to.
-
-* **Personal Tabs.** You can define a set of tabs that are presented by default in the personal app experience (experience a user has with your app outside the context of a team or channel). In this section, provide the tab name, a unique identifier, the URL that points to the UI to be displayed in Teams, and optionally, the URL to use if a user opts to view the tab in a browser. With Teams tabs, provide any additional domains from which the tab expects to load from or link to.
-
-##### Bots
-
-This section allows you to add a [conversational bot](~/bots/what-are-bots.md) to your app. If you already have a bot registered with Bot Framework, you can add that bot by clicking *Set Up* and supplying the bot's name, Bot Framework ID, and defining the scopes in which the bot works.
-
-If you haven't yet registered a bot with the Bot Framework, select **Register** to create a new one. Once youΓÇÖre done registering your bot, come back to this section of the Manifest Editor to enter its name and Bot Framework ID.
-
-After you've supplied your bot's information, you can now optionally define a list of commands that your bot can suggest to users. Add the name of the command, a description of the command, which indicates its syntax and arguments, and the scope(s) to which this command should apply.
-
-> [!NOTE]
-> If you have defined your bot to only support one scope, the commands specified for the unsupported scope is ignored. You can edit the scopes your bot supports at any time.
-
-##### Connectors
-
-This section allows you to add a connector to your app. If you already have registered an Office 365 connector, choose **Set up** and enter the name and ID of the connector. If you want a new connector select **Register** to be taken to the Connector Developer Dashboard in your browser.
-
-##### Message Extensions
-
-[Message extensions](~/messaging-extensions/what-are-messaging-extensions.md) are a powerful way for users to engage with your app within Teams. Users can query for information from your service and post that information in the form of cards, right into the channel or chat conversation.
-
-Message extensions are powered by Bot Framework bots, so they require a configured bot to operate. If you have the name and Bot Framework ID of the bot you would like to power the message extension, enter it. Otherwise, select **Register** to create one and enter the information afterward. Select whether the configuration of a message extension can be updated by the user.
-
-Once you have the underlying bot configured, define the commands and parameters, which the message extension can accept.
-
-Each command requires a title and an ID. The command can optionally contain a description for the user. Each command can support up to five parameters, each of which requires:
-
-* The name of the parameter as it appears in the Teams client and is included in the user request.
-* A user-friendly title.
-* An optional description.
-
-> [!NOTE]
-> To create message extension using app studio, see [create message extension using app studio](~/resources/create-messaging-extension-using-appstudio.md).
-
-#### Test and Distribute
-
-Once you have finished defining your application, the Test and Distribute section allows you export your appΓÇÖs definition as a zip file, which then can be shared and uploaded into the Teams client for testing. Clicking export downloads the zip file as *appname.zip* in your default download directory.
-
-##### Publish your app to Teams
-
-On your project home page, you can upload your app to a team, submit your app to your company custom app store for users in your organization, or submit your app to App Source for all Teams users. Your IT admin reviews these submissions. You can return to the *Publish* page to check on your submission status and learn if your app was approved or rejected by your IT admin. This is also where you'll come to submit updates to your app or cancel any currently active submissions.
-
-### Card Editor
-
-A card is a container for short or related pieces of information. Teams supports cards, which can have multiple properties and attachments. Cards are a key way that bots and connectors relay actionable information to users.
-
-To make this process easier and less error-prone, the Card Editor tab lets you build Hero Cards or Thumbnail Cards using a form and verify and test the resulting card (exactly as a user would see it) through a bot. It also provides the corresponding JSON, C#, or Node.js code for the card that you can copy/paste into your app's source code.
-
-If you already have a card that you would like to verify inside Teams, you can paste the JSON for that card into the JSON tab under *Add card info* and send it to yourself to see what it looks like in a chat.
-
-### React Control Library
-
->[!Note]
-> This React control library is deprecated in the future. Consider using the [Fluent-UI react controls as an alternative](https://microsoft.github.io/fluent-ui-react/) previously Stardust UI.
-
-Creating an app that follows the Teams best practices is a great way to give your app a look and feel that fits seamlessly with the Teams client experience. The UI controls that you use are critical to achieving that end. To make it easier to create a consistent UI, App Studio provides several categories of UI controls, which follow Teams design principles.
-
-Examples of the controls and corresponding React components are provided and ready to use in building your app.
-
-#### Controls
-
-Controls include:
-
-* Buttons
-* Dropdowns
-* Checkboxes
-* Radio Buttons
-* Toggles
-* Text Areas
-* Links
-* Tabs
-* Tables
-* Icons
-
-## App Studio to Developer Portal
-
-App Studio will be deprecated, you can use Developer Portal. The following table provides the detailed information of the features supported in the Developer Portal:
-
-| Features | App Studio | Developer Portal |
-| | | |
-| App analytics* | ❌ | ✔️ |
-| App capabilities-Bots | ✔️ | ✔️ |
-| App capabilities-Connectors | ✔️ | ✔️ |
-| App capabilities-Messaging extension | ✔️ | ✔️ |
-| App capabilities-Meeting extension | ❌ | ✔️ |
-| App capabilities-Personal apps | ✔️ | ✔️ |
-| App capabilities-Tabs | ✔️ | ✔️ |
-| App environments | ❌ | ✔️ |
-| App languages | ✔️ | ✔️ |
-| App manifest preview and download | ✔️ | ✔️ |
-| App plans and pricing | ❌ | ✔️ |
-| App publishing | ✔️ | ✔️ |
-| App permissions | ❌ | ✔️ |
-| App sharing-share with co-developers | ❌ | ✔️ |
-| App validation | ✔️ | ✔️ |
-| Create a new app | ✔️ | ✔️ |
-| Impart a zip package | ✔️ | ✔️ |
-
-\* *App analytics will be available for GA soon.*
-
-## See also
-
-[Manage your apps with the Developer Portal for Microsoft Teams](~/concepts/build-and-test/teams-developer-portal.md)
platform Debug https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/debug.md
To use ngrok in your project based on the capabilities you're using, you must re
For bots registered in the Microsoft Bot Framework, update the bot's messaging endpoint to use this new ngrok endpoint. For example, `https://2d1224fb.ngrok.io/api/messages`. You can validate that ngrok is working by testing the bot response in the Bot Framework portal's Test chat window. Again, like the emulator, this test doesn't permit you to access Teams-specific functionality. > [!NOTE]
->
-> * To update the messaging endpoint for a bot, you must use the Bot Framework. Select your bot in [your list of bots in Bot Framework](https://dev.botframework.com/bots). You do not need to migrate your bot to Microsoft Azure. You can also update your messaging endpoint through [App Studio](~/concepts/build-and-test/app-studio-overview.md).
-
-> [!WARNING]
->
-> * If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022.
+> To update the messaging endpoint for a bot, you must use the Bot Framework. Select your bot in [your list of bots in Bot Framework](https://dev.botframework.com/bots). You do not need to migrate your bot to Microsoft Azure. You can also update your messaging endpoint through [Developer Portal for Teams](~/concepts/build-and-test/teams-developer-portal.md).
## Cloud-hosted
platform Shared Channels https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/build-and-test/shared-channels.md
+
+ Title: Teams Connect shared channels
+
+description: Learn about Teams Connect shared channels to securely collaborate with internal and external users in a shared space without switching tenants.
+
+localization_priority: Normal
+++
+# Microsoft Teams Connect shared channels
+
+Microsoft Teams Connect shared channels allow members of a channel to collaborate with users across other teams and organizations. You can create and share a shared channel with:
+
+* Members of another team within the same organization.
+* Individuals within the same organization.
+* Individuals and other teams of other organizations.
+
+Teams Connect shared channels facilitate secure collaboration seamlessly. Allow external users outside of your organization to collaborate with internal users in Teams without changing their user context. Enhance user experience unlike using guest accounts, for example, the members must sign out of Teams and sign in again using a guest account. Teams applications extend the powerful collaboration space.
++
+## Enable your app for shared channels
+
+SupportedChannelTypes is an optional property that enables your app in non-standard channels. If your app supports the team scope and the property is defined, Teams enables your app in each channel type accordingly. Private and shared channels are currently supported. For more information, see [supportedChannelTypes](../../resources/schem#supportedchanneltypes).
+
+```JSON
+"supportedChannelTypes": {
+ "type": "array",
+ "description": "List of ΓÇÿnon-standardΓÇÖ channel types that the app supports. Note: Channels of standard type are supported by default if the app supports team scope. ",
+ "maxItems": 2,
+ "items": {
+ "enum": [
+ "sharedChannels",
+ "privateChannels"
+ ]
+ }
+ }
+```
+
+> [!NOTE]
+>
+> * If your app supports the team scope, it functions in standard channels, regardless of what values are defined in this property.
+> * Your app may need to account for the unique properties of each of these channel types in order to function properly.
+
+## Get context for shared channels
+
+When the content UX is loaded in a shared channel, use the data received from `getContext` call for shared channel changes. `getContext` call publishes two new properties, `hostTeamGroupID` and `hostTenantID`, which are used to retrieve channel membership using Microsoft Graph APIs. `hostTeam` is the team that creates the shared channel.
+
+For more information to enable your tab, see:
+
+* [Get context for your tab for private channels](../../tabs/how-to/access-teams-context.md#retrieve-context-in-private-channels)
+* [Get context for your tab for shared channels](../../tabs/how-to/access-teams-context.md#retrieve-context-in-microsoft-teams-connect-shared-channels)
+
+## Apps and permissions in shared channels
+
+You can collaborate with external members outside of your organization using shared channels. App permissions in shared channels follow the host team's app roster and host tenant's app policy.
+
+> [!NOTE]
+> The [activity feed notification API](/graph/teams-send-activityfeednotifications) doesn't support cross-tenant notifications for apps in a shared channel.
+
+## Get shared channel membership
+
+You can get direct shared channel membership by using the `hostTeamGroupID` from `getContext` and following these steps:
+
+1. Get direct members with [GET channel members API](/graph/api/channel-list-members?view=graph-rest-beta&tabs=http&preserve-view=true) API.
+
+ ```http
+ GET /teams/{host-team-group-id}/channels/{channel-id}/members
+ ```
+
+2. Get each shared team with GET `sharedWithTeams` API.
+
+ ```http
+ GET /teams/{host-team-group-id}/channels/{channel-id}/sharedWithTeams
+ ```
+
+3. Use GET members of each shared team (Team X) with GET `sharedWithTeams` API.
+
+ ```http
+ GET /teams/{host-team-group-id}/channels/{channel-id}/sharedWithTeams/{teamX}/members
+ ```
+
+## Classify members in the shared channel as in-tenant or out-tenant
+
+You can classify members as in-tenant or out-tenant by comparing `tenantID` of the member or team with `hostTeamTenantID` as follows:
+
+1. Get the member you wish to compare.
+
+ ```http
+ GET /teams/{host-team-group-id}/channels/{channel-id}/members
+ ```
+
+2. Use `getContext`, compare the `tenantID` of the member to the `hostTenantID` property.
+
+## Azure AD native identity
+
+Apps must function cross-tenants in installation and usage. The following table lists the channel types and their corresponding group IDs:
+
+|Channel type| groupId | hostTeamGroupId |
+|-||--|
+|Regular | Team Azure AD group ID | Team Azure AD group ID |
+|Shared | Empty | Host Team Azure AD group ID |
+
+## See also
+
+* [Build tabs for Teams](../../tabs/what-are-tabs.md)
+* [App manifest schema for Teams](../../resources/schem)
platform Submission Checklist https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/prepare/submission-checklist.md
You've designed, built, and tested your Microsoft Teams app. Now you're ready to
See the following video to learn more about publishing your app to the Microsoft Teams app store: <br>
-> [!VIDEO https://www.microsoft.com/videoplayer/embed/RE4WG3l]
+> [!VIDEO <https://www.microsoft.com/videoplayer/embed/RE4WG3l>]
<br> Before you submit your app to [Partner Center](/office/dev/store/use-partner-center-to-submit-to-appsource), ensure you've done the following.
Before you submit your app to [Partner Center](/office/dev/store/use-partner-cen
While your app may be working in a test environment, you should check your app package to avoid running into issues during the submission process.
-> [!WARNING]
-> If you have been using App Studio, we recommend that you'd try the [Developer Portal](https://dev.teams.microsoft.com/) to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022.
- The Microsoft Teams app validation tool helps you identify and fix issues before submitting to Partner Center. The tool automatically checks your app's configurations against the same test cases used during store validation.
-1. Go to the [Microsoft Teams app validation tool](https://dev.teams.microsoft.com/appvalidation.html). (Note: The tool is also available in [App Studio](../../../build-and-test/app-studio-overview.md).)
+1. Go to the [Microsoft Teams app validation tool](https://dev.teams.microsoft.com/appvalidation.html). (Note: The tool is also available in [Developer Portal for Teams](~/concepts/build-and-test/teams-developer-portal.md)
1. Upload your app package to run the automated tests. 1. Go to the **Preliminary checklist** and review the test cases that are difficult to automate. 1. [Fix issues with your configurations](~/resources/schem) or app in general. These issues occur if the automated tests give you errors or you haven't met all the criteria in the checklist.
platform Get Started Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/get-started-overview.md
Depending on the capabilities you want for your app, choose an appropriate devel
If you are already familiar with Yeoman workflow, you may prefer using [YoTeams Yeoman Generator](https://github.com/pnp/generator-teams/blob/master/docs/docs/tutorials/build-your-first-microsoft-teams-app.md) to build your apps.
-> [!WARNING]
-> If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. <br> App Studio is deprecated on August 01, 2022.
- ## Build your first Teams app Now, let's build your first Teams app. But first, pick your language (or framework) and prepare your development environment.
Now, let's build your first Teams app. But first, pick your language (or framewo
## See also
-* [Microsoft Teams samples](https://github.com/OfficeDev/Microsoft-Teams-Samples#microsoft-teams-samples)
-* [Git and GitHub resources](/contribute/additional-resources)
+- [Microsoft Teams samples](https://github.com/OfficeDev/Microsoft-Teams-Samples#microsoft-teams-samples)
+- [Git and GitHub resources](/contribute/additional-resources)
platform Glossary https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/get-started/glossary.md
Common terms and definitions used in Teams developer documentation.
| [App package](../concepts/build-and-test/apps-package.md) | A Teams app package is a zip file that contains the App manifest file, color icon, and outline icon. | | [App permission](../concepts/device-capabilities/browser-device-permissions.md#enable-apps-device-permissions) | An option in a Teams app to enable device permissions. It's available only when the manifest file of the app declares that the app needs device permissions. <br> **See also**: Device permissions | | [App scope](../concepts/design/app-structure.md) | An area in Teams where people can use your app. Apps can have one or many scopes, including personal, channels, chats, and meetings. A Teams app can exist across scopes. |
-| [App Studio](../concepts/build-and-test/app-studio-overview.md) | An app to start creating or integrating your own Microsoft Teams apps. It has now evolved to Developer Portal. <br> > If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022. <br> **See also**: [Developer Portal](#d) |
| App tray | An application tray located on the bottom bar of a Teams mobile app. It collects all apps that are open but not currently used or active. <br>**See also**: [Teams Mobile](#t) | | [Azure resource](../toolkit/provision.md) | A service that is available through Azure that your Teams app can use for Azure deployment. It could be storage accounts, web apps, databases, and more. | | [Azure Active Directory](../tabs/how-to/authentication/auth-tab-aad.md) | MicrosoftΓÇÖs cloud-based identity and access management service. It helps authenticated users access internal and external Azure resources. |
platform Define Action Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/define-action-command.md
Before creating the action command, you must decide the following factors:
See the following video to learn how to define message extension action commands: <br>
-> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE4OANG]
+> [!VIDEO <https://www.microsoft.com/en-us/videoplayer/embed/RE4OANG>]
<br> ## Select action command invoke locations
If the message extension is invoked from the compose box or directly from a mess
To add the action command to the app manifest, you must add a new `composeExtension` object to the top level of the app manifest JSON. You can use one of the following ways to do so:
-* [Create an action command using App Studio](#create-an-action-command-using-app-studio)
+* [Create an action command using Developer Portal](#create-an-action-command-using-developer-portal)
* [Create an action command manually](#create-an-action-command-manually)
-### Create an action command using App Studio
+### Create an action command using Developer Portal
-You can create an action command using **App Studio** or **Developer Portal**.
-
-> [!WARNING]
- > If you have been using App Studio, we recommend that you'd try the Developer Portal [Developer Portal](https://dev.teams.microsoft.com/) to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022.
+You can create an action command using **Developer Portal**.
# [App Studio](#tab/AS) > [!NOTE] > The prerequisite to create an action command is that you have already created a message extension. For information on how to create a message extension, see [create a message extension](~/messaging-extensions/how-to/create-messaging-extension.md).
-**To create an action command**
-
-1. Open **App Studio** from the Microsoft Teams client and select the **Manifest editor** tab.
-1. If you already created your app package in **App Studio**, select it from the list. If you haven't created an app package, import an existing one.
-1. After importing an app package, select **Message extensions** under **Capabilities**. You get a pop-up window to set up the message extension.
-1. Select **Set up** in the window to include the message extension in your app experience. The following image displays the message extension set up window:
+To create an action command:
- :::image type="content" source="~/assets/images/messaging-extension/messaging-extension-set-up.png" alt-text="Messaging extension set up":::
+1. Open **Developer Portal** from the Microsoft Teams client and select the **Apps** tab.
+ If you already created your app package in **Developer Portal**, select from the list. If you haven't created an app package, import an existing one.
+1. After importing an app package, select **Message extensions** under **App features**.
+1. To create a message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name to the new bot, and then select **Create**.
-1. To create a message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for message extension:
+ :::image type="content" source="../../../assets/images/tdp/bot-page.png" alt-text="The screenshot show you how to create a bot in Developer Portal.":::
- :::image type="content" source="~/assets/images/messaging-extension/create-bot-for-messaging-extension.png" alt-text="Create bot for messaging extension":::
+1. To use an existing bot, select **Select an existing bot** and choose the existing bots from the dropdown list or select **Enter a bot ID** if you have a bot id created already.
-1. To use an existing bot, select **Use existing bot** and select **Select from one of my existing bots** to choose the existing bots from the dropdown, give a **Bot name** and select **Save** or select **Connect to a different bot id** if you have a bot id created already, give a **Bot name** and select **Save**.
+1. Select the scope of the messaging extension and select **Save**.
- :::image type="content" source="~/assets/images/messaging-extension/use-existing-bot.png" alt-text="Use existing bot for messaging extension":::
+1. Select **Add a command** in the **Command** section to include the commands, which decides the behavior of message extension.
-1. Select **Add** in the **Command section** of the message extensions page to include the commands which decides the behaviour of message extension.
-The following image displays command addition for message extension:
+ :::image type="content" source="../../../assets/images/tdp/add-a-command.PNG" alt-text="Screenshot shows how to add a command to define the behavior of the message extension.":::
- :::image type="content" source="~/assets/images/messaging-extension/include-command.png" alt-text="Include command":::
+1. Select **Action** and then select parameter type.
-1. Select **Allow users to trigger actions in external services while inside of Teams**. The following image displays the action command selection:
+1. Enter **Command ID**, **Command title**, and **Command description**.
- :::image type="content" source="~/assets/images/messaging-extension/action-command-selection.png" alt-text="Action command selection":::
+1. Enter all the parameters and select the type of input from the dropdown list.
-1. To use a static set of parameters to create your task module, select **Define a set of static parameters for the command**.
+ :::image type="content" source="../../../assets/images/tdp/add-a-command-parameter.PNG" alt-text="Screenshot shows how to add a parameters to define your command for message extension.":::
- The following image displays the action command static parameter selection:
+1. Select **Add a domain** under **Preview links**.
- :::image type="content" source="~/assets/images/messaging-extension/action-command-static-parameter-selection.png" alt-text="Action command static parameter selection":::
+1. Enter valid domain and then select **Add**.
- The following image displays an example for static parameter set-up:
+ :::image type="content" source="../../../assets/images/tdp/add-domain.PNG" alt-text="Screenshot shows how to add a valid domain to your messaging extension for link unfurlings.":::
- :::image type="content" source="~/assets/images/messaging-extension/setting-up-of-static-parameter.png" alt-text="Action command static parameter set-up":::
+1. Select **Save**.
- The following image displays an example for static parameter testing:
+ :::image type="content" source="../../../assets/images/tdp/add-a-command-save.PNG" alt-text="Screenshot shows how to save all your setting and parameters for your message extension.":::
- :::image type="content" source="~/assets/images/messaging-extension/static-parameter-testing.png" alt-text="Action command static parameter testing":::
+**To add additional parameters**
-1. To use dynamic parameters, select to **Fetch a dynamic set of parameters from your bot**. The following image displays the action command parameter selection:
+1. Select ellipse under command section and then select **Edit parameter**.
- :::image type="content" source="~/assets/images/messaging-extension/action-command-dynamic-parameter-selection.png" alt-text="Action command dynamic parameter selection":::
+ :::image type="content" source="../../../assets/images/tdp/edit-parameters.PNG" alt-text="Screenshots shows how to add additional parameters for your message extension.":::
-1. Add a **Command Id** and a **Title**.
-1. Select the location from where you want to invoke the action command. The following image displays the action command invoke location:
+1. Select **Add a Parameters** and enter all the parameters.
- :::image type="content" source="~/assets/images/messaging-extension/action-command-invoke-location.png" alt-text="Action command invoke location":::
-
-1. Select **Save**.
-1. To add more parameters, select the **Add** button in the **Parameters** section.
+ :::image type="content" source="../../../assets/images/tdp/add-parameter.PNG" alt-text="Screenshot shows how to add additional parameters for your message extension."lightbox="../../../assets/images/tdp/add-a-parameters.PNG":::
### Create an action command manually
The following section is an example of a `composeExtensions` object defining two
... "composeExtensions": [ {
- "botId": "12a3c29f-1fc5-4d97-a142-12bb662b7b23",
- "canUpdateConfiguration": true,
+ "botId": "c8fa3cf6-b1f0-4ba8-a5bf-a241bc29adf3",
+ "scopes": [
+ "personal",
+ "groupchat"
+ ],
"commands": [ {
- "id": "addTodo",
- "description": "Create a To Do item",
- "title": "Create To Do",
+ "id": "To do",
"type": "action",
- "context": ["commandBox", "message", "compose"],
+ "title": "Create To do",
+ "description": "Create a To do",
+ "initialRun": true,
"fetchTask": false,
+ "context": [
+ "commandBox",
+ "compose"
+ ],
"parameters": [ { "name": "Name",
- "description": "To Do Title",
"title": "Title",
+ "description": "To do Title",
"inputType": "text" }, { "name": "Description",
- "description": "Description of the task",
"title": "Description",
+ "description": "Description of the task",
"inputType": "textarea" }, { "name": "Date",
- "description": "Due date for the task",
"title": "Date",
+ "description": "Due date for the task",
"inputType": "date" } ]
- },
+ }
+ ],
+ "canUpdateConfiguration": true,
+ "messageHandlers": [
{
- "id": "reassignTodo",
- "description": "Reassign a todo item",
- "title": "Reassign a todo item",
- "type": "action",
- "fetchTask": false,
+ "type": "link",
+ "value": {
+ "domains": [
+ "yourapp.onmicrosoft.com"
+ ]
+ }
} ] }
platform Link Unfurling https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/link-unfurling.md
[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)]
-This document guides you on how to add link unfurling to your app manifest using App studio or manually. With link unfurling, your app can register to receive an `invoke` activity when URLs with a particular domain are pasted into the compose message area. The `invoke` contains the full URL that was pasted into the compose message area. You can respond with a card that the user can unfurl for additional information or actions. This works as a search command with the URL as the search term.
+This document guides you on how to add link unfurling to your app manifest using Developer Portal or manually. With link unfurling, your app can register to receive an `invoke` activity when URLs with a particular domain are pasted into the compose message area. The `invoke` contains the full URL that was pasted into the compose message area. You can respond with a card that the user can unfurl for additional information or actions. This works as a search command with the URL as the search term.
> [!NOTE] >
See the following video to learn more about link unfurling:
## Add link unfurling to your app manifest
-To add link unfurling to your app manifest, add a new `messageHandlers` array to the `composeExtensions` section of your app manifest JSON. You can add the array with the help of App Studio or manually. Domain listings can include wildcards, for example `*.example.com`. This matches exactly one segment of the domain; if you need to match `a.b.example.com` then use `*.*.example.com`.
+To add link unfurling to your app manifest, add a new `messageHandlers` array to the `composeExtensions` section of your app manifest JSON. You can add the array with the help of Developer Portal or manually. Domain listings can include wildcards, for example `*.example.com`. This matches exactly one segment of the domain; if you need to match `a.b.example.com` then use `*.*.example.com`.
> [!NOTE] > Don't add domains that are not in your control, either directly, or through wildcards. For example, `yourapp.onmicrosoft.com` is valid, but `*.onmicrosoft.com` is not valid. The top-level domains are prohibited, for example, `*.com`, `*.org`.
-### Add link unfurling using App Studio
+### Add link unfurling using Developer Portal
-1. Open **App Studio** from the Microsoft Teams client, and select the **Manifest Editor** tab.
+1. Open **Developer Portal** from the Microsoft Teams client and then select the **Apps** tab.
1. Load your app manifest.
-1. On the **Message Extension** page, add the domain that you want to look for in the **Message handlers** section. The following image explains the process:
+1. On the **Messaging Extension** page under **App features**, select existing bot or create a new bot.
+1. Select **Save**.
+1. Select **Add a domain** under **Preview links** section and then enter valid domain.
+1. Select **Add**. The following image explains the process:
- :::image type="content" source="~/assets/images/link-unfurling.png" alt-text="Message handlers section in App Studio":::
+ :::image type="content" source="../../assets/images/tdp/add-domain-button.PNG" alt-text="Screenshot of the message handlers section in Developer Portal." lightbox="../../assets/images/tdp/add-domain.PNG":::
### Add link unfurling manually
platform Define Search Command https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md
Message extension search commands allow users to search external systems and ins
See the following video to learn how to define message extension search commands: <br>
-> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE4OIvK]
+> [!VIDEO <https://www.microsoft.com/en-us/videoplayer/embed/RE4OIvK>]
<br> ## Select search command invoke locations
The following image displays the invoke locations of the search command:
## Add the search command to your app manifest
-To add the search command to your app manifest, you must add a new `composeExtension` object to the top level of your app manifest JSON. You can add the search command either with the help of App Studio, or manually.
+To add the search command to your app manifest, you must add a new `composeExtension` object to the top level of your app manifest JSON. You can add the search command either with the help of Developer Portal, or manually.
-### Create a search command using App Studio
+### Create a search command using Developer Portal
The prerequisite to create a search command is that you must already have created a message extension. For information on how to create a message extension, see [create a message extension](~/messaging-extensions/how-to/create-messaging-extension.md).
-To create a search command:
+**To create an action command**
-1. Open **App Studio** from the Microsoft Teams client, and select the **Manifest Editor** tab.
-1. If you already created your app package in **App Studio**, select from the list. If you haven't created an app package, import an existing one.
-1. After importing app package, select **Message extensions** under **Capabilities**. You get a pop-up window to set up the message extension.
-1. Select **Set up** in the window to include the message extension in your app experience. The following image displays the message extension set up page:
+1. Open **Developer Portal** from the Microsoft Teams client and select the **Apps** tab.
+ If you already created your app package in **Developer Portal**, select from the list. If you haven't created an app package, import an existing one.
+1. After importing an app package, select **Message extensions** under **App features**.
+1. To create a message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name to the new bot, and then select **Create**.
- :::image type="content" source="~/assets/images/messaging-extension/messaging-extension-set-up.png" alt-text="Messaging extension set up":::
+ :::image type="content" source="../../../assets/images/tdp/bot-page.png" alt-text="The screenshot show you how to create a bot in Developer Portal.":::
-1. To create the message extension, you need a Microsoft registered bot. You can either use an existing bot or create a new bot. Select **Create new bot** option, give a name for the new bot, and select **Create**. The following image displays bot creation for message extension:
+1. To use an existing bot, select **Select an existing bot** and choose the existing bots from the dropdown list, or select **Enter a bot ID** if you have a bot ID created already.
- :::image type="content" source="~/assets/images/messaging-extension/create-bot-for-messaging-extension.png" alt-text="Create bot for messaging extension":::
+1. Select the scope of the messaging extension and select **Save**.
-1. To use an existing bot, select **Use existing bot** and select **Select from one of my existing bots** to choose the existing bots from the dropdown, give a **Bot name** and select **Save** or select **Connect to a different bot id** if you have a bot id created already, give a **Bot name** and select **Save**.
+1. Select **Add a command** in the **Command** section to include the commands, which decides the behavior of message extension.
+The following image displays command addition for message extension:
- :::image type="content" source="~/assets/images/messaging-extension/use-existing-bot.png" alt-text="Use existing bot for messaging extension":::
+ :::image type="content" source="../../../assets/images/tdp/add-a-command.PNG" alt-text="The screenshot shows how to add a command to define the behavior of the message extension.":::
-1. Select **Add** in the **Command section** of the message extensions page to include the commands, which decide the behaviour of message extension.
-The following image displays command addition for message extension:
+1. Select **Search** and enter **Command ID**, **Command title**, and **Command description**.
+
+1. Enter all the parameters and select the type of input from the dropdown list.
+
+ :::image type="content" source="../../../assets/images/tdp/add-a-command-parameter.PNG" alt-text="The screenshot shows how to add a parameter to define your command for message extension.":::
+
+1. Select **Add a domain** under **Preview links**.
+
+1. Enter valid domain and then select **Add**.
+
+ :::image type="content" source="../../../assets/images/tdp/add-domain.PNG" alt-text="Screenshot shows how to add a valid domain to your messaging extension for link unfurlings.":::
+
+1. Select **Save**.
- :::image type="content" source="~/assets/images/messaging-extension/include-command.png" alt-text="Include command":::
+ :::image type="content" source="../../../assets/images/tdp/add-a-command-save.PNG" alt-text="Screenshot shows how to save all your setting and parameters for your message extension.":::
-1. Select **Allow users to query your service for information and insert that into a message**. The following image displays the search command parameter selection:
+**To add additional parameters**
- :::image type="content" source="~/assets/images/messaging-extension/search-command-parameter-selection.png" alt-text="Search command parameter selection":::
+1. Select ellipse under command section and then select **Edit parameter**.
-1. Add a **Command Id** and a **Title**.
-1. Select the location from where your search command must be invoked. The following image displays the search command invoke location:
+ :::image type="content" source="../../../assets/images/tdp/edit-parameters.PNG" alt-text="Screenshots shows how to add additional parameters for your message extension.":::
- :::image type="content" source="~/assets/images/messaging-extension/search-command-invoke-location-selection.png" alt-text="Search command invoke location selection":::
+1. Select **Add a Parameters** and enter all the parameters.
-1. Add your search parameter and select **Save**.
+ :::image type="content" source="../../../assets/images/tdp/add-parameter.PNG" alt-text="Screenshot shows how to add additional parameters for your message extension."lightbox="../../../assets/images/tdp/add-a-parameters.PNG":::
### Create a search command manually
To manually add your message extension search command to your app manifest, you
| Property name | Purpose | Required? | Minimum manifest version | |||||
-| `id` | This property is an unique ID that you assign to search command. The user request includes this ID. | Yes | 1.0 |
+| `id` | This property is a unique ID that you assign to search command. The user request includes this ID. | Yes | 1.0 |
| `title` | This property is a command name. This value appears in the user interface (UI). | Yes | 1.0 | | `description` | This property is a help text indicating what this command does. This value appears in the UI. | Yes | 1.0 | | `type` | This property must be a `query`. | No | 1.4 | |`initialRun` | If this property is set to **true**, it indicates this command should be executed as soon as the user selects this command in the UI. | No | 1.0 | | `context` | This property is an optional array of values that defines the context the search action is available in. The possible values are `message`, `compose`, or `commandBox`. The default is `["compose", "commandBox"]`. | No | 1.5 |
-You must add the details of the search parameter, that defines the text visible to your user in the Teams client.
+You must add the details of the search parameter that defines the text visible to your user in the Teams client.
| Property name | Purpose | Is required? | Minimum manifest version | |||||
platform Auth Oauth Card https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-authentication/auth-oauth-card.md
keywords: teams authentication OAuthCard OAuth card Azure Bot Service
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-Without the Azure Bot ServiceΓÇÖs OAuthCard it's complicated to implement authentication in a bot. It's a full-stack challenge that involving building a web experience, integrating with external OAuth providers, token management, and handling the right server-to-server API calls to complete authentication flow securely. This can result in clunky experiences requiring the entry of ΓÇ£magic numbersΓÇ¥.
+Without the Azure Bot ServiceΓÇÖs OAuthCard, it's complicated to implement authentication in a bot. It's a full-stack challenge that involving building a web experience, integrating with external OAuth providers, token management, and handling the right server-to-server API calls to complete authentication flow securely. This can result in clunky experiences requiring the entry of ΓÇ£magic numbersΓÇ¥.
-With Azure Bot ServiceΓÇÖs OAuthCard, it's easier for your Teams bot to sign in your users and access external data providers. Whether youΓÇÖve already implemented auth and you want to switch over to something simpler, or if you are looking to add authentication to your bot service for the first time, the OAuthCard can make it easier.
+With Azure Bot ServiceΓÇÖs OAuthCard, it's easier for your Teams bot to sign in your users and access external data providers. Whether youΓÇÖve already implemented auth and you want to switch over to something simpler, or if you're looking to add authentication to your bot service for the first time, the OAuthCard can make it easier.
-Other topics in [Authentication](~/resources/bot-v3/bot-authentication/auth-flow-bot.md) describe authentication without using the OAuthCard, so if you want to understand authentication in Teams more deeply, or have a situation where you cannot use the OAuthCard, you can still refer to those topics.
+Other topics in [Authentication](~/resources/bot-v3/bot-authentication/auth-flow-bot.md) describe authentication without using the OAuthCard, so if you want to understand authentication in Teams more deeply, or have a situation where you can't use the OAuthCard, you can still refer to those topics.
## Support for the OAuthCard
There are currently some restrictions to where you can use the OAuthCard. These
## How does the Azure Bot Service help me do authentication?
-Full documentation using the OAuthCard is available in the topic: [Add authentication to your bot via Azure Bot Service](/azure/bot-service/bot-builder-tutorial-authentication?view=azure-bot-service-3.0&preserve-view=true). Note that this topic is in the Azure Bot Framework documentation set, and is not specific to Teams.
+Full documentation using the OAuthCard is available in the topic: [Add authentication to your bot via Azure Bot Service](/azure/bot-service/bot-builder-tutorial-authentication?view=azure-bot-service-3.0&preserve-view=true). Note that this topic is in the Azure Bot Framework documentation set, and isn't specific to Teams.
The following sections tell how to use the OAuthCard in Teams.
The following sections tell how to use the OAuthCard in Teams.
The OAuthCard helps with authentication in the following ways: * Provides an out-of-box web-based authentication flow: you no longer have to write and host a web page to direct to external login experiences or provide a redirect.
-* Is seamless for end users: complete the full sign in experience right within Teams.
+* Is seamless for end users: complete the full sign-in experience right within Teams.
* Includes easy token management: you no longer have to implement a token storage system ΓÇô instead, the Bot Service takes care of token caching and provides a secure mechanism for fetching those tokens. * Is supported by complete SDKs: easy to integrate and consume from your bot service. * Has out-of-box support for many popular OAuth providers, such as Azure AD/MSA, Facebook, and Google.
Because access tokens are sensitive information, you may not wish to have them s
## Getting started with OAuthCard in Teams > [!NOTE]
-> This guide is using the Bot Framework v3 SDK. You can find the v4 implementation [here](/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=csharp&preserve-view=true). You will still need to create a manifest and include token.botframework.com in the `validDomains` section, because otherwise the Sign in button won't open the authentication window. Use the [App Studio](~/concepts/build-and-test/app-studio-overview.md) to generate your manifest.
+> This guide is using the Bot Framework v3 SDK. You can find the v4 implementation [here](/azure/bot-service/bot-builder-authentication?view=azure-bot-service-4.0&tabs=csharp&preserve-view=true). You will still need to create a manifest and include token.botframework.com in the `validDomains` section, because otherwise the Sign in button won't open the authentication window. Use the [Developer Portal](~/concepts/build-and-test/teams-developer-portal.md) to generate your manifest.
YouΓÇÖll first need to configure your Azure bot service to set up external authentication providers. Read [Configuring identity providers](~/concepts/authentication/configure-identity-provider.md) for detailed steps.
platform Bots Conv Channel https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bot-conversations/bots-conv-channel.md
Bots added to a team become another team member and can be @mentioned as part of
A bot in a group or channel should provide information relevant and appropriate for all members. While your bot can certainly provide any information relevant to the experience, keep in mind conversations with it are visible to everyone. Therefore, a great bot in a group or channel should add value to all users, and certainly not inadvertently share information more appropriate to a one-to-one conversation.
-Your bot, just as it is, may be entirely relevant in all scopes without requiring more work. In Teams, there's no expectation that your bot function in all scopes, but you should ensure that your bot provides user value in whichever scope(s) you choose to support. For more information on scopes, see [Apps in Microsoft Teams](~/concepts/build-and-test/app-studio-overview.md).
+Your bot, just as it is, may be entirely relevant in all scopes without requiring more work. In Teams, there's no expectation that your bot function in all scopes, but you should ensure that your bot provides user value in whichever scope(s) you choose to support. For more information on scopes, see [Apps in Microsoft Teams](~/concepts/build-and-test/teams-developer-portal.md).
Developing a bot that works in groups or channels uses much of the same functionality as personal conversations. Additional events and data in the payload provide Teams group and channel information. Those differences, as well as key differences in common functionality are described in the following sections.
In a channel, replying to a message shows as a reply to the initiating reply cha
### Best practice: Welcome messages in Teams
-When your bot is first added to the group or team, it's useful to send a welcome message introducing the bot to all users. The welcome message should provide a description of the botΓÇÖs functionality and user benefits. Ideally the message should also include commands for the user to interact with the app. To do this, ensure that your bot responds to the `conversationUpdate` message, with the `teamsAddMembers` eventType in the `channelData` object. Be sure that the `memberAdded` ID is the bot's App ID itself, because the same event is sent when a user is added to a team. For more information, see [Team member or bot addition](~/resources/bot-v3/bots-notifications.md#team-member-or-bot-addition) for more details.
+When your bot is first added to the group or team, it's useful to send a welcome message introducing the bot to all users. The welcome message should provide a description of the botΓÇÖs functionality and user benefits. Ideally the message should also include commands for the user to interact with the app. To do this, ensure that your bot responds to the `conversationUpdate` message, with the `teamsAddMembers` eventType in the `channelData` object. Be sure that the `memberAdded` ID is the bot's App ID itself, because the same event is sent when a user is added to a team. For more information, see [Team member or bot addition](~/resources/bot-v3/bots-notifications.md#team-member-or-bot-addition).
You might also want to send a personal message to each member of the team when the bot is added. To do this, you could [fetch the team roster](~/resources/bot-v3/bots-context.md#fetch-the-team-roster) and send each user a [direct message](~/resources/bot-v3/bot-conversations/bots-conv-proactive.md). We recommend that your bot *not* send a welcome message in the following situations:
-* The team is big (obviously subjective, for example, more than 100 members). Your bot may be seen as 'spammy' and the person who added it may get complaints unless you clearly communicate your bot's value proposition to everyone who sees the welcome message.
+* The team is large (obviously subjective, for example, more than 100 members). Your bot may be seen as 'spammy' and the person who added it may get complaints unless you clearly communicate your bot's value proposition to everyone who sees the welcome message.
* Your bot is first mentioned in a group or channel, versus being first added to a team. * A group or channel is renamed. * A team member is added to a group or channel.
session.send(generalMessage);
## Accessing groupChat or channel scope
-Your bot can do more than send and receive messages in groups and teams. For instance, it can also fetch the list of members, including their profile information, as well as the list of channels. For more information, see [Get context for your Microsoft Teams bot](~/resources/bot-v3/bots-context.md).
+Your bot can do more than send and receive messages in groups and teams. For instance, it can also fetch the list of members, including their profile information, and the list of channels. For more information, see [Get context for your Microsoft Teams bot](~/resources/bot-v3/bots-context.md).
## See also
platform Bots Create https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-create.md
For more information, see [Bot Framework Documentation](/azure/bot-service/?view
## Create a bot for Microsoft Teams
-**Teams App Studio** is a tool that can help create your bot, and an app package that references your bot. It also contains a React control library and configurable samples for cards. For more information, see [Getting started with Teams App Studio](~/concepts/build-and-test/app-studio-overview.md). The steps that follow assume that you are hand configuring your bot and not using **Teams App Studio**:
+**Teams Developer Portal for Teams** is a tool that can help create your bot, and an app package that references your bot. It also contains a React control library and configurable samples for cards. For more information, see [Getting started with Teams Developer Portal for Teams](~/concepts/build-and-test/teams-developer-portal.md). The steps that follow assume that you are hand configuring your bot and not using **Teams Developer Portal for Teams**:
1. Create the bot using [Bot Framework](https://dev.botframework.com/bots/new). **Be sure to add Microsoft Teams as a channel from the featured channels list after creating your bot.** Feel free to re-use any Microsoft App ID you generated if you've already created your app package/manifest.
For more information, see [Bot Framework Documentation](/azure/bot-service/?view
![Edit Bot Properties](~/assets/images/bots/bf-migrate-bot-to-azure.png) > * If you register your bot using Microsoft Azure, your bot code does not need to be *hosted* on Microsoft Azure. > * If you do register a bot using Azure portal, you must have a Microsoft Azure account. You can [create one for free](https://azure.microsoft.com/free/). To verify your identity when you create one, you must provide a credit card, but it won't be charged; it's always free to create and use bots with Teams.
-> * You can now use App Studio to register/update app and bot information directly within Teams. You'll only have to use the Azure portal for adding or configuring other Bot Framework channels such as Direct Line, Web Chat, Skype, and Facebook Messenger.
-
-> [!WARNING]
->
->* If you have been using App Studio, we recommend that you'd try the Developer Portal to configure, distribute, and manage your Teams apps. App Studio is deprecated on August 01, 2022.
+> * You can now use Developer Portal for Teams to register/update app and bot information directly within Teams. You'll only have to use the Azure portal for adding or configuring other Bot Framework channels such as Direct Line, Web Chat, Skype, and Facebook Messenger.
## See also
platform Bots Overview https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-overview.md
The SDK extensions install dependencies, including the Bot Builder SDK.
> [!IMPORTANT] > You can develop Teams apps in any other web-programming technology and call the [Bot Framework REST APIs](/bot-framework/rest-api/bot-framework-rest-overview) directly, but you must perform all token handling yourself.
-*Teams App Studio* helps you create and configure your app manifest, and can create your Bot Framework bot for you. It also contains a React control library and an interactive card builder.
+*Developer Portal for Teams* helps you create and configure your app manifest, and can create your Bot Framework bot for you. It also contains a React control library and an interactive card builder.
## Outgoing webhooks
platform Bots Test https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/bot-v3/bots-test.md
Last updated 03/20/2019
[!include[v3-to-v4-SDK-pointer](~/includes/v3-to-v4-pointer-bots.md)]
-When testing your bot you have to take into consideration both the context(s) you want your bot to run in, as well as any functionality you may have added to your bot that requires data specific to Microsoft Teams. Ensure that the method you chose to test your bot aligns with its functionality.
+When testing your bot you have to take into consideration both the context(s) you want your bot to run in, and any functionality you may have added to your bot that requires data specific to Microsoft Teams. Ensure that the method you chose to test your bot aligns with its functionality.
## Test by uploading to Teams
-The most comprehensive way to test your bot is by creating an app package and uploading it to Teams. This is the only method to test the full functionality available to your bot, across all scopes.
+The most comprehensive way to test your bot is by creating an app package and uploading it to Teams. Uploading the app to Teams is the only method to test the full functionality available to your bot, across all scopes.
-There are two methods for uploading your app. You can either use [App Studio](~/concepts/build-and-test/app-studio-overview.md) or you can manually [create an app package](~/concepts/build-and-test/apps-package.md) and [upload your app](~/concepts/deploy-and-publish/apps-upload.md). If you need to alter your manifest, and reupload your app, you should [delete your bot](#deleting-a-bot-from-teams) before uploading your altered app package.
+There are two methods for uploading your app. You can either use [Developer Portal for Teams](~/concepts/build-and-test/teams-developer-portal.md) or you can manually [create an app package](~/concepts/build-and-test/apps-package.md) and [upload your app](~/concepts/deploy-and-publish/apps-upload.md). If you need to alter your manifest, and reupload your app, you should [delete your bot](#deleting-a-bot-from-teams) before uploading your altered app package.
## Debug your bot locally
Bots in personal context can't be disabled or removed by a user, short of comple
## Disabling a bot in Teams
-To stop your bot receiving messages, go to your Bot Dashboard and edit the Microsoft Teams channel. Clear the **Enable on Microsoft Teams** option. This prevents users from interacting with the bot, but it will still be discoverable and users can add it to teams.
+To stop your bot receiving messages, go to your Bot Dashboard and edit the Microsoft Teams channel. Clear the **Enable on Microsoft Teams** option. Disabling a bot in Teams prevents users from interacting with the bot, but it will still be discoverable and users can add it to teams.
## Deleting a bot from Teams
-To remove your bot completely from Teams, go to your Bot Dashboard and edit the Microsoft Teams channel. Choose the **Delete** button at the bottom. This prevents users from discovering, adding, or interacting with your bot. This doesn't remove the bot from other users' Teams instances, although it will cease functioning for them as well.
+To remove your bot completely from Teams, go to your Bot Dashboard and edit the Microsoft Teams channel. Choose the **Delete** button at the bottom. Deleting a bot from Teams prevents users from discovering, adding, or interacting with your bot. Deleting a bot from Teams doesn't remove the bot from other users' Teams instances, although it will cease functioning for them as well.
## Removing your bot from AppSource
platform Developer Preview Intro https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/dev-preview/developer-preview-intro.md
Developer Preview is a public program for developers, which provides early acces
## Developer preview app manifest
-Many features enabled in developer preview will require alterations to your app manifest JSON file. To do so, you'll need to use the [developer preview manifest schema](~/resources/schem) to make these changes, nor will you be able to use it to upload your app for testing. To upload your app you'll need to select the `More apps` icon on the app bar, then select the `Upload a custom app link`. Using this method you can only upload a zipped version of your app package.
+Many features enabled in developer preview will require alterations to your app manifest JSON file. To do so, you'll need to use the [developer preview manifest schema](~/resources/schem) to make these changes, nor will you be able to use it to upload your app for testing. To upload your app you'll need to select the `More apps` icon on the app bar, then select the `Upload a custom app link`. Using this method you can only upload a zipped version of your app package.
-You may find it useful to use App Studio to create the non-developer preview portions of your app package, then export that package and manually edit the `manifest.json` file to add the developer preview features you wish to use. Once you've added developer preview features to the `manifest.json` file, you won't be able to re-import the package into App Studio.
+You may find it useful to use Developer Portal for Teams to create the non-developer preview portions of your app package, then export that package and manually edit the `manifest.json` file to add the developer preview features you wish to use. Once you've added developer preview features to the `manifest.json` file, you won't be able to re-import the package into Developer Portal for Teams.
## Enable developer preview
platform Localization Schema https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/schema/localization-schema.md
Example of localization JSON schema is as follows:
```json {
- "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
- "name.short": "Le App Studio",
- "name.full": "App Studio pour Microsoft Teams",
- "description.short": "Créez d'excellentes applications pour Microsoft Teams avec App Studio.",
- "description.full": "Créez de nouvelles applications Microsoft Teams, concevez et prévisualisez des cartes bot, et explorez la documentation avec App Studio.",
- "staticTabs[0].name": "Editeur de manifest",
- "staticTabs[1].name": "Editeur de cartes",
- "staticTabs[2].name": "Bibliothèque de contrôles",
- "bots[0].commandLists[0].commands[0].title": "chercher",
- "bots[0].commandLists[0].commands[0].description": "Rechercher la documentation Teams pertinente"
+ "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.9/MicrosoftTeams.Localization.schema.json",
+ "name.short": "Portail de Développement",
+ "name.full": "Portail des développeurs",
+ "description.short": "Configurer, distribuer et gérer vos applications Microsoft Teams",
+ "description.full": "Anciennement App Studio, le portail des développeurs peut vous aider où que vous soyez dans votre parcours de développement d’applications Microsoft Teams.1. Configurez une nouvelle application ou importez une application existante.2. Configurez les fonctionnalités de votre application et d’autres métadonnées importantes.3. Obtenez des ressources pour vous aider à créer une application de haute qualité.3. Testez votre application directement dans Teams.4. Distribuez votre application dans votre organisation ou dans le Store Teams.5. Analysez l’utilisation, l’engagement et d’autres informations sur votre application. Le portail inclut également des outils pour concevoir des scènes virtuelles personnalisées, des cartes adaptatives et l’intégration à la Plateforme d’identités Microsoft.",
+ "staticTabs[0].name": "Accueil",
+ "staticTabs[1].name": "Applications",
+ "staticTabs[2].name": "Outils",
+ "staticTabs[3].name": "Developer Portal",
+ "bots[0].commandLists[0].commands[0].title": "Rechercher",
+ "bots[0].commandLists[0].commands[0].description": "Rechercher la documentation Teams appropriée"
} ```
platform Shifts Wfm Connectors https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/shifts-wfm-connectors.md
# Production-ready Shifts Connectors
-Teams Shifts Workforce management (WFM) connectors are production-ready, open-source, and community-driven integrations, useful for Firstline Workers. They offer a seamless experience and quick process for the digital transformation of Firstline Workers with Teams Shifts.
+Teams Shifts Workforce management (WFM) connectors are production-ready and community-driven integrations, useful for Firstline Workers. They offer a seamless experience and quick process for the digital transformation of Firstline Workers with Teams Shifts.
-Each connector provides detailed guidance for deployment and integration to your organization. The complete source code is available in GitHub repository. You can explore in detail or fork, and customize to meet your specific needs.
+Each connector provides detailed guidance for deployment and integration to your organization. You can explore in detail and customize to meet your specific needs.
-This document gives an overview of key benefits of Teams Shifts WFM connectors, Kronos-to-Teams Shifts connector, and JDA-to-Teams Shifts connector.
+This document gives an overview of key benefits of Teams Shifts WFM connectors.
## Key benefits of Teams Shifts WFM connectors
Following are the key benefits of Teams Shifts WFM connectors:
* **Customizable and extensible:** While all Shifts WFM connectors are ready to deploy for immediate use, with the entire code base and deployment scripts readily available. You can easily customize or extend them to fit your unique needs.
-* **Detailed documentation & support:** All Shifts WFM connectors are accompanied by end-to-end documentation for solution architecture, deployment, and configuration steps. The connector repositories are monitored, so that you can report any issues, challenges or difficulties you encounter through the repo's GitHub Issues tracker.
+* **Detailed documentation & support:** All Shifts WFM connectors are accompanied by end-to-end documentation for solution architecture, deployment, and configuration steps. The connector repositories are monitored, so that you can report any issues, challenges or difficulties you encounter.
* **Seamless integration:** The integration between WFM solutions and Teams Shifts allows Firstline Workers to use the Teams Shifts app to view or manage their schedules and shift times, and use all the other rich collaboration features provided in Teams right from their mobile device or desktop without having to switch context to another app.
The shifts view in Teams is shown in the following image:
![Open shifts in Teams](../assets/images/teams-open-shifts-view.png)
+For more information on Teams Shifts Workforce management (WFM) connectors, see [Shifts connectors](/microsoft-365/frontline/shifts-connectors).
+ ## See also [Integrate web apps](~/samples/integrate-web-apps-overview.md)
platform Virtual Tables For Tasks https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/samples/virtual-tables-for-tasks.md
To follow along with this article, you'll need:
The scenario described in this guide uses the Planner Plan and Task virtual tables. The scenario described is the same one that the Tasks Collaboration control uses. From a user perspective the scenario shows how a Planner Plan, and several Tasks are created and associated with a specific business record. The scenario goes on to show how to retrieve the tasks associated with the business record and how to read, update and delete a specific planner task.
-The following sequence diagram explains the interaction between the client, which could be the Tasks collaboration control, the [Collaboration API](~/samples/collaboration-api-reference.md) and the Planner Plan and Task virtual tables.
+The following sequence diagram explains the interaction between the client, which could be the Tasks collaboration control, the [Collaboration API](/rest/api/industry/collaboration-controls/) and the Planner Plan and Task virtual tables.
:::image type="content" source="~/assets/images/collaboration-control/vt-sequence.png" alt-text="Sequence diagram for virtual tables":::
The `plannerTaskId` property is associated with a planner task, which was create
-To resolve this issue, you must check the error message in the response and if it's set to the message shown above this means the virtual record isn't associated. To create an association for this record, you must call [Associate Collaboration Map - REST API](/rest/api/industry/collaboration-toolkit/collaboration-custom-ap-is/associate-collaboration-map).
+To resolve this issue, you must check the error message in the response and if it's set to the message shown above this means the virtual record isn't associated. To create an association for this record, you must call [Associate Collaboration Map - REST API](/rest/api/industry/collaboration-controls/collaboration-custom-ap-is/associate-collaboration-map).
### Attempt to read a virtual record and the Graph resource has been deleted
platform Cards Reference https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/cards-reference.md
Before you identify the different card types, understand how to create a hero ca
## Create a hero card, thumbnail card, or Adaptive Card
-To create a hero card, thumbnail card, or Adaptive Card from App Studio:
+To create a hero card, thumbnail card, or Adaptive Card from Developer Portal for Teams:
1. Go to [Developer Portal for Teams](https://dev.teams.microsoft.com/home). 1. Select **Design and build Adaptive cards**.
platform Design Effective Cards https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/task-modules-and-cards/cards/design-effective-cards.md
Use for sending a simple actionable message.
### List
-Use in scenarios where you want the user to pick an item from a list, but the items donΓÇÖt need a lot of explanation.
+Use in scenarios where you want the user to pick an item from a list, but the items donΓÇÖt need a lot of explanations.
#### Mobile
Use to gather multiple inputs from the user.
## Anatomy
-Adaptive Cards have a lot of flexibility. But at minimum, we strongly suggest including the following components in every card.
+Adaptive Cards have a lot of flexibilities. But at minimum, we strongly suggest including the following components in every card.
#### Mobile
Cards designed for a narrow screen scale well on wider screens (the opposite isn
### Column layouts
-Use [`ColumnSet`](https://adaptivecards.io/explorer/ColumnSet.html) to format your card content into into a table or grid. There are several options for formatting column width. These guidelines help you understand when to use each one.
+Use [`ColumnSet`](https://adaptivecards.io/explorer/ColumnSet.html) to format your card content into a table or grid. There are several options for formatting column width. These guidelines help you understand when to use each one.
* `"width": "auto"`: Sizes each column in the `ColumnSet` to fit whatever app content you include in that column. * **Do**: Use when you have content of varying width and don't need to prioritize a specific column. * **Do**: For each `TextBlock`, set `"wrap": true` since text doesn't wrap by default. * **Don't**: Set `"width": "auto"` for every column container. For example, if you have an input and button side by side, the button might get cut off on some screens. Instead, set `auto` for the column with buttons and other content that must always be completely visible. * `"width": "stretch"`: Sizes columns based on the available `ColumnSet` width. When multiple columns use the `"stretch"` value, they equally share the available width.
- * **Do**: Use with one column if all your other columns have a static width. For example, you have thumbnail images in one column that're all 50 pixels wide.
+ * **Do**: Use with one column if all your other columns have a static width. For example, you have thumbnail images in one column that are all 50 pixels wide.
* `"width": "<number>"`: Sizes columns using a proportion of the available `ColumnSet` width. For example, if you set three columns with `"width": "1"`, `"width": "4"`, and `"width": "5"`, the columns will take up 10, 40, and 50 percent of the available width. * `"width": "<number>px"`: Sizes columns to a specific pixel width. This approach is useful when creating tables. * **Do**: Use when the width of what you're displaying doesn't need to change (for example, numbers and percentages).
Use [`ColumnSet`](https://adaptivecards.io/explorer/ColumnSet.html) to format yo
**Do**: In this screen, there are two columns at the bottom of the card. The input component width is set to `stretch`, while the **Select** button width is set to `auto`. This ensures the button remains completely in view. **Don't**: In this screen, both columns have `width` set to `auto`. This causes the **Select** button on the right to be cut off slightly compared to the input. # [Code](#tab/code)
Here's the code for implementing the design example you should follow.
**Do**: Layouts tend to display better on mobile with fewer columns. **Don't**: Using too many columns can clutter your card content on mobile. #### Example: Fixed width has its place
Here's the code for implementing the design example you should follow.
When the the size of something you're displaying doesn't need to change, set you columns to a specific pixel width. This example shows the left column sized at 50 pixels, while the descriptions next to the thumbnails stretch the length of the card. # [Code](#tab/code)
Here's the code for implementing the design example.
Whether you're using [`TextBlock`](https://adaptivecards.io/explorer/TextBlock.html), [`ColumnSet`](https://adaptivecards.io/explorer/ColumnSet.html), or [`Input.ChoiceSet`](https://adaptivecards.io/explorer/Input.ChoiceSet.html), set the `wrap` property to `true` so your card text doesn't truncate on mobile.
-#### Example: Making sure text doesn't truncate
+#### Example: Making sure text don't truncate
# [Design](#tab/design) **Do**: In this screen, the card has a `wrap` property set to `true`. This allows the text to fit to any screen size. **Don't**: In this screen, the card doesn't use the `wrap` property, so the text cuts off on a mobile screen. # [Code](#tab/code)
Follow these guidelines when including images in your cards.
:::row::: :::column span=""::: #### Do: Use up to six primary actions
While Adaptive Cards can support six primary actions, most cards donΓÇÖt need th
:::column-end::: :::column span=""::: #### Don't: Use more than six primary actions
Adaptive Cards should present quick, actionable content. Too many actions can ov
### Frequency #### Do: Be concise
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Explore updates from the previous GA releases listed here.
| **Date** | **Update** | **Find here** | | -- | | | | 11/12/2018 | Tabs in group chat is now available in the released version of Teams. As part of this work, the tabs section has been reworked for clarity.| [Configurable tabs](~/concepts/tabs/tabs-configurable.md) |
-| 11/11/2018 | Getting started for Node JS and for .NET/C# has been updated to use App Studio in Teams, and a new section has been added on hosting Node based Teams apps in Azure. | [Get started on the Microsoft Teams platform with C#/.NET and App Studio](~/get-started/get-started-dotnet-app-studio.md), [Get started on the Microsoft Teams platform with Node JS and App Studio](~/get-started/get-started-nodejs-app-studio.md), [Host your Node Teams app in Azure](~/get-started/get-started-nodejs-in-azure.md)|
| 11/09/2018 | You can now create deep links to private chats between users. | [Deep linking to a chat](concepts/build-and-test/deep-links.md#navigate-to-a-chat) | | 11/08/2018 | SharePoint Framework 1.7 has shipped and with it a new feature to use Microsoft Teams tab as a SharePoint Framework web part. | [Tabs in SharePoint](~/concepts/tabs/tabs-in-sharepoint.md) | | 11/05/2018 | The **task module** feature was released. A task module allows you to create modal pop-up experiences in your Teams application, from both bots and tabs. Inside the pop-up, you can run your own custom HTML/JavaScript code, show an `<iframe>`-based widget such as a YouTube or Microsoft Stream video, or display an [Adaptive card](/adaptive-cards/). | [Task module Overview](~/concepts/task-modules/task-modules-overview.md), [task module in tabs](~/concepts/task-modules/task-modules-tabs.md), [task module in bots](~/concepts/task-modules/task-modules-bots.md) |
Explore updates from the previous GA releases listed here.
| 04/02/2018 | Using bots to send notifications for your app. |[Notification-only bots](~/concepts/bots/bots-notification-only.md)| | 03/27/2018 | Expanded documentation for proactive messaging. |[Starting a conversation](./concepts/bots/bot-conversations/bots-conv-proactive.md)| | 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)|
-| 03/03/2018 | Added documentation for Teams App Studio. |[Quickly develop apps with Teams App Studio](~/get-started/get-started-app-studio.md), [Using the control library in App Studio](~/get-started/app-studio-component-library.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)| |