Updates from: 10/29/2022 01:21:56
Service Microsoft Docs article Related commit history on GitHub Change details
platform Teams Apps In Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/apps-in-teams-meetings/teams-apps-in-meetings.md
The following list details the various user types along with their accessibility
> [!NOTE] > Teams users can add apps when they host meetings or chats with other organizations. When an external users share apps to the meeting, all the user can access the app. The host organization's data policies and data sharing practices of the third-party apps shared by that user's organization, will be in effect.
-* **Anonymous**: Anonymous users don't have an Azure AD identity and aren't federated with a tenant. The anonymous participants are like external users, but their identity isn't shown in the meeting. Anonymous users can't access apps in a meeting window. An anonymous user can be a presenter or an attendee, but can't be an organizer.
+* **Anonymous**: Anonymous users don't have an Azure AD identity and aren't federated with a tenant. The anonymous participants are like external users, but their identity isn't shown in the meeting. Anonymous users can't access apps in a meeting window. An anonymous user can't view the bot logo in the meeting chat. An anonymous user can be a presenter or an attendee, but can't be an organizer.
> [!NOTE] > Anonymous users inherit the global default user-level app permission policy. For more information, see [manage Apps](/microsoftteams/non-standard-users#anonymous-user-in-meetings-access).
platform Format Your Bot Messages https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/how-to/format-your-bot-messages.md
# Format your bot messages
-Message formatting enables you to bring out the best in bot messages. You can format your bot messages to include rich cards as attachments that contain interactive elements, such as buttons, text, images, audio, video, and so on.
+Message formatting enables you to bring out the best in bot messages. You can format your bot messages to include rich cards as attachments that contain interactive elements, such as buttons, text, images, and so on.
> [!NOTE] > The bot message size limit is 40 KB. If the bot message size limit exceeds 40 KB, bot receives a `413` status code (`RequestEntityTooLarge`), which contains the error code `MessageSizeTooBig`. The bot message size limit includes the entire message payload encoded as UTF-16 and doesn't include Base64 encoded images.
platform Publish https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/publish.md
If your app is production ready, you can begin the process of getting it listed
## See also
+* [Publish Teams apps in Microsoft Teams store](/training/modules/microsoft-teams-publish-app-to-store/)
* [Publishing to Microsoft 365 App Stores](/office/dev/store/) * [Upload your Teams app](~/concepts/deploy-and-publish/apps-upload.md) * [Publish your Teams app to your org](/MicrosoftTeams/tenant-apps-catalog-teams?toc=/microsoftteams/platform/toc.json&bc=/MicrosoftTeams/breadcrumb/toc.json)
platform Understand Use Cases https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/design/understand-use-cases.md
Title: Understanding your app's use cases and Teams features
-description: Learn about Microsoft Teaams app cabilities- tabs, bots, meeting extensions, message extensions, webhook connectors, personal app experience, shared app experience.
+description: Learn about Microsoft Teams app capabilities such as, tabs, bots, meeting extensions, message extensions, webhook connectors, personal app experience, and shared app experience.
ms.localizationpriority: high
The app user and their app's requirements are the basic guidelines that determin
If you're going to meet user requirements with your app, you first need to understand them. -- **Understand your user**:
- - Recognize user issues and identify the solutions to some common problems the users face.
- - Build your Teams app by finding the right combination of Teams features to meet your user's needs.
- - Understand use cases to know how an end-user interacts with your app.
+* **Understand your user**:
+ * Recognize user issues and identify the solutions to some common problems the users face.
+ * Build your Teams app by finding the right combination of Teams features to meet your user's needs.
+ * Understand use cases to know how an end-user interacts with your app.
+ * It's recommended to go through the lean module [how to publish your app to Teams app store](/training/modules/microsoft-teams-publish-app-to-store/) to help with your app to pass the Microsoft Teams store submission process.
-- **Understand the problem**: Work out the core problem your app must solve.
+* **Understand the problem**: Work out the core problem your app must solve.
-- **Consider integration**: Identify the apps and services your app requires, such as authentication, Microsoft Graph, or web apps.
+* **Consider integration**: Identify the apps and services your app requires, such as authentication, Microsoft Graph, or web apps.
## Microsoft Teams app features There are multiple ways to extend Teams so every app is unique. Teams app features offer: -- [App capabilities](#app-capabilities)-- [App scope](#app-scope)
+* [App capabilities](#app-capabilities)
+* [App scope](#app-scope)
### App capabilities
There are a few options for [incorporating your app into the Teams calling exper
#### Microsoft Graph for Teams
-The [Microsoft Graph API for Teams](/graph/teams-concept-overview) provides access to information about teams, channels, users, and messages that helps you to create or enhance features for your app.
+The [Microsoft Graph API for Teams](/graph/teams-concept-overview) provides access to information about teams, channels, users, and messages that help you to create or enhance features for your app.
:::column-end:::
The [Microsoft Graph API for Teams](/graph/teams-concept-overview) provides acce
Your app can have one of the following scopes: -- **Personal app experience**: A personal app is a dedicated space or bot to help users focus on their own tasks or view activities important to them.-- **Shared app experience**: Team, channel, and chat are collaboration spaces. Apps in these contexts are available to everyone in that space. Collaboration spaces typically focus on workflows for your app's interactions or unlocking new social interactions.
+* **Personal app experience**: A personal app is a dedicated space or bot to help users focus on their own tasks or view activities important to them.
+* **Shared app experience**: Team, channel, and chat are collaboration spaces. Apps in these contexts are available to everyone in that space. Collaboration spaces typically focus on workflows for your app's interactions or unlocking new social interactions.
An app can exist across different scopes. For example: -- Your app can display data in a central shared location, that is, a tab.-- It can also present that same information through a personal conversational interface, that is, a bot.
+* Your app can display data in a central shared location, that is, a tab.
+* It can also present that same information through a personal conversational interface, that is, a bot.
A user can interact with an app on a canvas tab to do an activity or might choose to do the same using a conversational bot.
platform Respond To Task Module Submit https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md
[!include[v4-to-v3-SDK-pointer](~/includes/v4-to-v3-pointer-me.md)] This document guides you on how your app responds to the action commands, such as user's task module submit action.
-After a user submits the task module, your web service receives a `composeExtension/submitAction` invoke message with the command ID and parameter values. Your app has five seconds to respond to invoke, otherwise the user receives an error message **Unable to reach the app**, and any reply to invoke is ignored by the Teams client.
+After a user submits the task module, your web service receives a `composeExtension/submitAction` invoke message with the command ID and parameter values. Your app has five seconds to respond to the invoke.
You have the following options to respond:
You have the following options to respond:
* [Request the user to authenticate](~/messaging-extensions/how-to/add-authentication.md). * [Request the user to provide additional configuration](~/get-started/first-message-extension.md).
+If the app doesn't respond within five seconds, the Teams client will retry the request twice before it sends an error message **Unable to reach the app**. If the bot replies after the timeout, the response is ignored.
+
+> [!NOTE]
+> The app must defer any long-running actions after the bot replies to the invoke request. The long-running action results can be delivered as a message.
+ For authentication or configuration, after the user completes the process, the original invoke is resent to your web service. The following table shows which types of responses are available, based on the invoke location `commandContext` of the message extension: |Response Type | Compose | Command bar | Message |
For authentication or configuration, after the user completes the process, the o
> * When you select **Action.Submit** through ME cards, it sends invoke activity with the name **composeExtension**, where the value is equal to the usual payload. > * When you select **Action.Submit** through conversation, you receive message activity with the name **onCardButtonClicked**, where the value is equal to the usual payload.
-If the app contains a conversational bot, install the bot in the conversation and then load the task module. The bot is useful to get additional context for the task module. To install conversational bot, see [Request to install your conversational bot](create-task-module.md#request-to-install-your-conversational-bot).
+If the app contains a conversational bot, install the bot in the conversation, and then load the task module. The bot is useful to get additional context for the task module. To install conversational bot, see [Request to install your conversational bot](create-task-module.md#request-to-install-your-conversational-bot).
## The submitAction invoke event
platform Team Chat Member Api Changes https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/resources/team-chat-member-api-changes.md
Currently, if you want to retrieve information for one or more members of a chat
These APIs have the following shortcomings: * For large teams, performance is poor and timeouts are more likely: The maximum team size has grown considerably since Teams was released in early 2017. As `GetMembersAsync` or `getMembers` returns the entire member list, it takes a long time for the API call to return for large teams, and it's common for the call to time out and you have to try again.
-* Getting profile details for a single user is difficult: To get the profile information for a single user, you have to retrieve the entire member list and then search for the one you want. There's a helper function in the Bot Framework SDK to make it simpler, but it isn't efficient.
+* Getting profile details for a single user is difficult: To get the profile information for a single user, you have to retrieve the entire member list, and then search for the one you want. There's a helper function in the Bot Framework SDK to make it simpler, but it isn't efficient.
With the introduction of organization wide teams, there's a requirement to better align these APIs with Office 365 privacy controls. Bots used in large teams are able to retrieve basic profile information similar to the `User.ReadBasic.All` Microsoft Graph permission. Tenant administrators have a great deal of control over which apps and bots can be used in their tenant, but these settings are different from Microsoft Graph.
The following code provides a sample JSON representation of what is returned by
}] ```
-## API Changes
+## API changes
Following are the upcoming API changes:
Following are the upcoming API changes:
> `objectId` is changed to `aadObjectId` to match what is called in the `Activity` object of a Bot Framework message. The new API is available with version 4.8 or later of the Bot Framework SDK. It is also available in the Teams SDK extension Bot Framework 3.x. Meanwhile, you can use the [REST](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#get-single-member-details) endpoint. * `TeamsInfo.GetMembersAsync` in C# and `TeamsInfo.getMembers` in TypeScript or Node.js is formally deprecated. Once the new API is available, you must update your bots to use it. This also applies to the [underlying REST API that these APIs use](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=json#tabpanel_CeZOj-G++Q_json).
-* By late 2022, bots can't proactively retrieve the `userPrincipalName` or `email` properties for members of a chat or team. Bots must use the Graph APIs to retrieve the required information. The new `GetConversationPagedMembers` API can't return the `userPrincipalName` and `email` properties from late 2022. Bots must use Graph API with an access token to retrieve information.
+* By late 2022, bots can't proactively retrieve the `userPrincipalName` or `email` properties for members of a chat or team. Bots must use the Graph APIs to retrieve the required information. The new `GetConversationPagedMembers` API can't return the `userPrincipalName` and `email` properties from late 2022.
-> [!NOTE]
->
-> We recommend you to use the [Graph API](/microsoftteams/platform/resources/team-chat-member-api-changes#api-changes) with an access token to retrieve information.
+ > [!NOTE]
+ > We recommend you to use the [Graph API](/graph/api/user-get?view=graph-rest-1.0&tabs=http&preserve-view=true#examples) with an access token to retrieve information.
platform Tab Sso Code https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/authentication/tab-sso-code.md
To obtain app access for the current app user, your client-side code must make a
<details> <summary>Learn more about getAuthToken()</summary> <br>
-`getAuthToken()` is a method in Microsoft Teams JavaScript SDK. It requests an Azure AD access token to be issued on behalf of app. The token is acquired from the cache, if it is not expired. If it's expired, a request is sent to Azure AD to obtain a new access token.
+`getAuthToken()` is a method in Microsoft Teams JavaScript SDK. It requests an Azure AD access token to be issued on behalf of app. The token is acquired from the cache, if it is'nt expired. If it's expired, a request is sent to Azure AD to obtain a new access token.
For more information, see [getAuthToken](/javascript/api/@microsoft/teams-js/microsoftteams.authentication?view=msteams-client-js-latest#@microsoft-teams-js-microsoftteams-authentication-getauthtoken&preserve-view=true). </details>
Use `getAuthToken()` at the time when you need access token for the current app
| If access token is needed... | Call getAuthToken()... | | | |
-| When app user accesses the app | From inside `microsoftTeams.initialize()`. |
+| When app user accesses the app | After `microsoftTeams.initialize()`. |
| To use a particular functionality of the app | When the app user takes an action that requires signing in. | ### Add code for getAuthToken
platform Content Page https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/create-tab-pages/content-page.md
To show the loading indicator:
1. Call `app.initialize();`. 1. As a **mandatory** step, call `app.notifySuccess()` to notify Teams that your app has successfully loaded. Then, Teams hides the loading indicator, if applicable. If `notifySuccess` isn't called within 30 seconds, Teams assumes that your app timed out, and displays an error screen with a retry option. 1. **Optionally**, if you're ready to print to the screen and wish to lazy load the rest of your application's content, you can hide the loading indicator manually by calling `app.notifyAppLoaded();`.
-1. If your application doesn't load, you can call `app.notifyFailure({reason: app.FailedReason.Timeout, message: "failure message"});` to let Teams know about the failure and, optionally, provide a failure message. An error screen is shown to the user. The following code shows the enumeration that defines the possible reasons you can indicate for the application's failure to load:
+1. If your application doesn't load, you can call `app.notifyFailure({reason: app.FailedReason.Timeout, message: "failure message"});` to let Teams know about the failure and optionally provide a failure message. `notifyFailure` doesn't show custom message. An error screen is shown to the user. The following code shows the enumeration that defines the possible reasons you can indicate for the application's failure to load:
```typescript /* List of failure reasons */
platform What Are Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/what-are-tabs.md
Tabs are Teams-aware webpages embedded in Microsoft Teams. They're simple HTML `
The following image shows personal tabs: The following image shows Contoso channel tabs: