Updates from: 07/08/2021 03:22:48
Service Microsoft Docs article Related commit history on GitHub Change details
platform Create Apps For Teams Meetings https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
The `GetParticipant` API includes the following examples:
```csharp protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken) {
- TeamsMeetingParticipant participant = GetMeetingParticipantAsync(turnContext, "yourMeetingId", "yourParticipantId", "yourTenantId");
+ TeamsMeetingParticipant participant = await TeamsInfo.GetMeetingParticipantAsync(turnContext, "yourMeetingId", "yourParticipantId", "yourParticipantTenantId").ConfigureAwait(false);
TeamsChannelAccount member = participant.User; MeetingParticipantInfo meetingInfo = participant.Meeting; ConversationAccount conversation = participant.Conversation;
The JSON response body for `GetParticipant` API is:
#### Response codes
-The `GetParticipant` API includes the following response codes:
+The `GetParticipant` API returns the following response codes:
|Response code|Description| |||
The `GetParticipant` API includes the following response codes:
| **200** | The participant information is successfully retrieved.| | **401** | The app responds with an invalid token.| | **404** | The meeting has either expired or participant cannot be found.|
-| **500** | The meeting has either expired (more than 60 days) since the meeting ended or the participants do not have permissions based on their role.|
### NotificationSignal API
The `NotificationSignal` API includes the following examples:
```csharp Activity activity = MessageFactory.Text("This is a meeting signal test");-
-activity.ChannelData = new TeamsChannelData
- {
- Notification = new NotificationInfo()
- {
- AlertInMeeting = true,
- ExternalResourceUrl = "https://teams.microsoft.com/l/bubble/APP_ID?url=<url>&height=<height>&width=<width>&title=<title>&completionBotId=BOT_APP_ID"
- }
- };
+activity.TeamsNotifyUser(true, "https://teams.microsoft.com/l/bubble/APP_ID?url=<url>&height=<height>&width=<width>&title=<title>&completionBotId=BOT_APP_ID");
await turnContext.SendActivityAsync(activity).ConfigureAwait(false); ```
The Meeting Details API includes the following examples:
# [C#](#tab/dotnet) ```csharp
-var connectorClient = parameters.TurnContext.TurnState.Get<IConnectorClient>();
+var connectorClient = turnContext.TurnState.Get<IConnectorClient>();
var creds = connectorClient.Credentials as AppCredentials; var bearerToken = await creds.GetTokenAsync().ConfigureAwait(false); var request = new HttpRequestMessage(HttpMethod.Get, new Uri(new Uri(connectorClient.BaseUri.OriginalString), $"v1/meetings/{meetingId}"));
platform Design Teams App Advanced Ui Components https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/design/design-teams-app-advanced-ui-components.md
A notification bar is a dedicated area for displaying a brief, important message
## Stage
-Stage offers a way for users to open an entityΓÇölike an image, file, or websiteΓÇöin Teams instead of opening it in another app or browser. The primary use case of stage is viewing; the surface should not be used for complex interactions.
+Stage lets users view contentΓÇölike an image, file, or websiteΓÇöon a large surface in Teams without switching context. Stage is primarily for viewing content. DonΓÇÖt use stage for complex interactions.
-(Implementation note: Build your stage using a large [task module](../../task-modules-and-cards/task-modules/design-teams-task-modules.md).)
+Learn how to implement [stage](~/tabs/tabs-link-unfurling.md).
### Top use cases
-* Open an entity in Teams instead of another app or browser
-* Spotlight media or other content
+* Display content in a large surface within Teams instead of another app or browser
+* Spotlight media or other rich content
# [Desktop](#tab/desktop)
platform Team Chat Member Api Changes https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/team-chat-member-api-changes.md
>[!NOTE] > The deprecation process for `TeamsInfo.getMembers` and `TeamsInfo.GetMembersAsync` APIs have started. Initially, they are heavily throttled to five requests per minute and return a maximum of 10K members per team. This results in the full roster not being returned as team size increases.
-> You must update to version 4.10 or higher of the Bot Framework SDK and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#team-members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes).
+> You must update to version 4.10 or higher of the Bot Framework SDK and switch to the paginated API endpoints, or the `TeamsInfo.GetMemberAsync` single user API. This also applies to your bot even if you are not directly using these APIs, as older SDKs call these APIs during [membersAdded](../bots/how-to/conversations/subscribe-to-conversation-events.md#team-members-added) events. To view the list of upcoming changes, see [API changes](team-chat-member-api-changes.md#api-changes).
-Currently, bot developers who want to retrieve information for one or more members of a chat or team use the Microsoft Teams bot APIs `TeamsInfo.GetMembersAsync` for C# or `TeamsInfo.getMembers` for TypeScript or Node.js APIs. For more information, see [fetch roster or user profile](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile). These APIs have several shortcomings.
+Currently, if you want to retrieve information for one or more members of a chat or team, you can use the [Microsoft Teams bot APIs](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) `TeamsInfo.GetMembersAsync` for C# or `TeamsInfo.getMembers` for TypeScript or Node.js APIs. For more information, see [fetch roster or user profile](../bots/how-to/get-teams-context.md#fetch-the-roster-or-user-profile).
-Currently, if you want to retrieve information for one or more members of a chat or team, you can use the [Microsoft Teams bot APIs](/microsoftteams/platform/bots/how-to/get-teams-context?tabs=dotnet#fetch-the-roster-or-user-profile) `TeamsInfo.GetMembersAsync` for C# or `TeamsInfo.getMembers` for TypeScript or Node.js APIs. These APIs have the following shortcomings:
+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 is 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 is a helper function in the Bot Framework SDK to make it simpler, but it is not efficient.
platform App Templates https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/samples/app-templates.md
Conversational Q&A bots are an easy way to provide answers to frequently asked q
The Get Support app is used by organizations that are using Microsoft Teams, to enable any set of users to request assistance from supervisors. This app includes the following features: * Requesting assistance on different categories from a Power App.
-* Notifications sent to requestors informing them of who hare assigned.
+* Notifications sent to requestors informing them of who is assigned.
* Notifications sent to assigned supervisors informing them of who needs assistance.
-* Analyzing escalations and patterns in SharePoint and PowerBI.S.
+* Analyzing escalations and patterns in SharePoint and Power BI.
[Get it on GitHub](https://github.com/OfficeDev/microsoft-teams-app-get-support/)
platform Build Adaptive Card Tabs https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/how-to/build-adaptive-card-tabs.md
Following is a sample Adaptive Card tab manifest:
Communication between your Adaptive Card tab and your bot is done through `invoke` activities. Each `invoke` activity has a corresponding **name**. Use the name of each activity to differentiate each request. `tab/fetch` and `tab/submit` are the activities covered in this section.
+> [!NOTE]
+> Bots need to send all the responses to [service URL](/azure/bot-service/rest-api/bot-framework-rest-connector-api-reference?view=azure-bot-service-4.0#base-uri&preserve-view=true). Service URL is received as part of incoming `activity` payload.
+ ### Fetch Adaptive Card to render to a tab `tab/fetch` is the first invoke request that your bot receives when a user opens an Adaptive Card tab. When your bot receives the request, it either sends a tab **continue** response or a tab **auth** response.
platform Cards Reference https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/task-modules-and-cards/cards/cards-reference.md
You can identify and use different types of cards based on your application requ
| [Thumbnail card](#thumbnail-card) | This card typically contains a single thumbnail image, some short text, and one or more buttons. | | [Card collections](#card-collections) | This card collection is used to return multiple items in a single response. |
+## Features that support different card types
+
+| Card type | Bots | Message extension previews | Message extension results | Task modules | Outgoing Webhooks | Incoming Webhooks | O365 Connectors |
+| | | | | | | | |
+| Adaptive Card | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£ö | Γ£ö | Γ£û |
+| O365 Connector card | Γ£ö | Γ£û | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£ö |
+| Hero card | Γ£ö | Γ£ö | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£û |
+| Thumbnail card | Γ£ö | Γ£ö | Γ£ö | Γ£û | Γ£ö | Γ£ö | Γ£û |
+| List card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£ö | Γ£ö | Γ£û |
+| Receipt card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£û | Γ£ö | Γ£û |
+| Signin card | Γ£ö | Γ£û | Γ£û | Γ£û | Γ£û | Γ£û | Γ£û |
+
+> [!NOTE]
+> For Adaptive Cards in Incoming Webhooks, all native Adaptive Card schema elements, except `Action.Submit`, are fully supported. The supported actions are [**Action.OpenURL**](https://adaptivecards.io/explorer/Action.OpenUrl.html), [**Action.ShowCard**](https://adaptivecards.io/explorer/Action.ShowCard.html), [**Action.ToggleVisibility**](https://adaptivecards.io/explorer/Action.ToggleVisibility.html), and [**Action.Execute**](/adaptive-cards/authoring-cards/universal-action-model#actionexecute).
+ ## Common properties for all cards You can go through some common properties that are applicable to all cards.