Updates from: 04/06/2021 03:14:54
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 meetings app capabilities are declared in your app manifest using the `confi
> [!NOTE] > Try updating your app manifest with the [manifest schema](../resources/schem).
+> Apps in meetings need *groupchat* scope. The *team* scope works for tabs in channels only.
```json
The meetings app capabilities are declared in your app manifest using the `confi
"privateChatTab", "meetingChatTab", "meetingDetailsTab",
- "meetingSidePanel"
+ "meetingSidePanel",
+ "meetingStage"
] } ] ```
+> [!NOTE]
+> `meetingStage` is currently available in developer preview only.
### Context property
The tab `context` and `scopes` properties enable you to determine where your app
| **meetingChatTab** | A tab in the header of a group chat between a set of users in the context of a scheduled meeting. | | **meetingDetailsTab** | A tab in the header of the meeting details view of the calendar. | | **meetingSidePanel** | An in-meeting panel opened via the unified bar (U-bar). |
+| **meetingStage** | An app from the sidepanel can be shared to the meeting stage. |
> [!NOTE] > `Context` property is currently not supported on mobile clients.
In-meeting dialog must not use task module. Task module is not invoked in a meet
> * You must invoke the [submitTask()](../task-modules-and-cards/task-modules/task-modules-bots.md#submitting-the-result-of-a-task-module) function to dismiss automatically after a user takes an action in the web-view. This is a requirement for app submission. For more information, see [Teams SDK task module](/javascript/api/@microsoft/teams-js/microsoftteams.tasks?view=msteams-client-js-latest#submittask-stringobject--stringstring&preserve-view=true). > * If you want your app to support anonymous users, your initial invoke request payload must rely on the `from.id` request metadata in the `from` object, not the `from.aadObjectId` request metadata. `from.id` is the user ID and `from.aadObjectId` is the Azure Active Directory (AAD) ID of the user. For more information, see [using task modules in tabs](../task-modules-and-cards/task-modules/task-modules-tabs.md) and [create and send the task module](../messaging-extensions/how-to/action-commands/create-task-module.md?tabs=dotnet#the-initial-invoke-request).
+#### Share to stage
+
+> [!NOTE]
+> This capability is avaialable only in insider dev preview
++
+This capability gives developers the ability to share an app to the meeting stage. By enabling share to the meeting stage, meeting participants can collaborate in real-time.
+
+The required context is meetingStage in the app manifest. A pre-requisite for this is to have the meetingSidePanel context. This will enable the "Share" button in the sidepanel as depecited below
+++ ### After a meeting The post-meeting and pre-meeting configurations are equivalent.
platform Add Authentication https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/authentication/add-authentication.md
With the preliminary settings done, let's focus on the creation of the bot to us
- Set `ConnectionName` to the name of the identity provider connection you added to the bot channel registration. The name we used in this example is *BotTeamsAuthADv1*. - Set `MicrosoftAppId` to the **bot App ID** you saved at the time of the bot channel registration. - Set `MicrosoftAppPassword` to the **customer secret** you saved at the time of the bot channel registration.
- - Set the `ConnectionName` to the name of the identity provider connection.
Depending on the characters in your bot secret, you may need to XML escape the password. For example, any ampersands (&) will need to be encoded as `&`.
With the preliminary settings done, let's focus on the creation of the bot to us
- Set `MicrosoftAppId` to the **bot App ID** you saved at the time of the bot channel registration. - Set `MicrosoftAppPassword` to the **customer secret** you saved at the time of the bot channel registration. - Set the `connectionName` to the name of the identity provider connection.- Depending on the characters in your bot secret, you may need to XML escape the password. For example, any ampersands (&) will need to be encoded as `&`. [!code-javascript[settings](~/../botbuilder-samples/samples/javascript_nodejs/46.teams-auth/.env)]
platform Conversation Basics https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/conversation-basics.md
keyword: conversations basics receive message send message picture message channel data adaptive cards + # Conversation basics [!INCLUDE [pre-release-label](~/includes/v4-to-v3-pointer-bots.md)]
-A conversation is a series of messages sent between your bot and one or more users. There are three types of conversations, also called scopes in Teams:
+A conversation is a series of messages sent between your Microsoft Teams bot and one or more users. There are three types of conversations, also called scopes in Teams:
| Conversation type | Description | | - | -- |
-| `teams` | Also called channel conversations, visible to all members of the channel. |
-| `personal` | Conversations between bots and a single user. |
-| `groupChat` | Chat between a bot and two or more users. Also enables your bot in meeting chats. |
+| `channel` | This conversation type is visible to all members of the channel. |
+| `personal` | This conversation type includes conversations between bots and a single user. |
+| `groupChat` | This conversation type includes chat between a bot and two or more users. It also enables your bot in meeting chats. |
-A bot behaves slightly differently depending on what kind of conversation it is involved in:
+A bot behaves differently depending on the conversation it is involved in:
* Bots in channel and group chat conversations require the user to @ mention the bot to invoke it in a channel. * Bots in a one-to-one conversation do not require an @ mention. All messages sent by the user routes to your bot.
-To enable your bot in a particular scope, add that scope to your [app manifest](~/resources/schem).
+For the bot to work in a particular conversation or scope, add support to that scope in the [app manifest](~/resources/schem).
+
+## Messages in bot conversations
+
+Each message in a conversation is an `Activity` object of type `messageType: message`. When a user sends a message, Teams posts the message to your bot. Teams sends a JSON object to your bot's messaging endpoint. Your bot examines the message to determine its type and responds accordingly.
-## Activities
+Basic conversations are handled through the Bot Framework connector, a single REST API. This API enables your bot to communicate with Teams and other channels. The Bot Builder SDK provides the following:
-Each message is an `Activity` object of type `messageType: message`. When a user sends a message, Teams posts the message to your bot; specifically, it sends a JSON object to your bot's messaging endpoint. Your bot examines the message to determine its type and responds accordingly.
+* Easy access to the Bot Framework connector.
+* Additional functionality to manage conversation flow and state.
+* Simple ways to incorporate cognitive services such as Natural Language Processing (NLP).
-Basic conversations are handled through the Bot Framework Connector, a single REST API. This API enables your bot to communicate with Teams and other channels. The Bot Builder SDK provides easy access to this API, additional functionality to manage conversation flow and state, and simple ways to incorporate cognitive services such as Natural Language Processing (NLP).
+Your bot receives messages from Teams using the `Text` property and it sends single or multiple message responses to the users.
## Receive a message To receive a text message, use the `Text` property of the `Activity` object. In the bot's activity handler, use the turn context object's `Activity` to read a single message request.
-The following code shows an example.
+The following code shows an example of receiving a message:
-# [C#/.NET](#tab/dotnet)
+# [C#](#tab/dotnet)
```csharp protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivi
```
-# [TypeScript/Node.js](#tab/typescript)
+# [TypeScript](#tab/typescript)
```typescript
async def on_message_activity(self, turn_context: TurnContext):
## Send a message
-To send a text message, specify the string you want to send as the activity. In the bot's activity handler, use the turn context object's `SendActivityAsync` method to send a single message response. Use the object's `SendActivitiesAsync` method to send multiple responses at once. The following code shows an example of sending a message when someone is added to a conversation.
+To send a text message, specify the string you want to send as the activity. In the bot's activity handler, use the turn context object's `SendActivityAsync` method to send a single message response. Use the object's `SendActivitiesAsync` method to send multiple responses at once. The following code shows an example of sending a message when a user is added to a conversation:
-# [C#/.NET](#tab/dotnet)
+The following code shows an example of sending a message:
+
+# [C#](#tab/dotnet)
```csharp protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersA
```
-# [TypeScript/Node.js](#tab/typescript)
+# [TypeScript](#tab/typescript)
```typescript
async def on_members_added_activity(
> [!NOTE]
-> Message splitting occurs when a text message and an attachment are sent in the same activity payload. This activity is split into separate activities by Microsoft Teams, one activity with just a text message and the other with an attachment. As the activity is split, you do not receive the message ID in response, which is used to [update or delete](~/bots/how-to/update-and-delete-bot-messages.md) the message proactively. It is recommended to send separate activities instead of depending on message splitting.
+> Message splitting occurs when a text message and an attachment are sent in the same activity payload. This activity is split into separate activities by Microsoft Teams, one with just a text message and the other with an attachment. As the activity is split, you do not receive the message ID in response, which is used to [update or delete](~/bots/how-to/update-and-delete-bot-messages.md) the message proactively. It is recommended to send separate activities instead of depending on message splitting.
+
+Messages sent between users and bots include internal channel data within the message. This data allows the bot to communicate properly on that channel. The Bot Builder SDK allows you to modify the message structure.
## Teams channel data
-The `channelData` object contains Teams-specific information and is a definitive source for team and channel IDs. You may need to cache and use these IDs as keys for local storage. The `TeamsActivityHandler` in the SDK, typically pulls out important information from the `channelData` object to make it easily accessible. However, you can always access the original data from the `turnContext` object.
+The `channelData` object contains Teams-specific information and is a definitive source for team and channel IDs. Optionally, you can cache and use these IDs as keys for local storage. The `TeamsActivityHandler` in the SDK typically pulls out important information from the `channelData` object to make it easily accessible. However, you can always access the original data from the `turnContext` object.
-The `channelData` object is not included in messages in personal conversations, as these take place outside of any channel.
+The `channelData` object is not included in messages in personal conversations, as these take place outside of a channel.
-A typical channelData object in an activity sent to your bot contains the following information:
+A typical `channelData` object in an activity sent to your bot contains the following information:
-* `eventType` Teams event type; passed only in cases of [channel modification events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
-* `tenant.id` Azure Active Directory tenant ID, passed in all contexts.
-* `team` Passed only in channel contexts, not in personal chat.
- * `id` GUID for the channel.
- * `name` Name of the team; passed only in cases of [team rename events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
-* `channel` Passed only in channel contexts when the bot is mentioned or for events in channels in teams where the bot has been added.
- * `id` GUID for the channel.
- * `name` Channel name; passed only in cases of [channel modification events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
-* `channelData.teamsTeamId` Deprecated. This property is included only for backwards compatibility.
-* `channelData.teamsChannelId` Deprecated. This property is included only for backwards compatibility.
+* `eventType`: Teams event type passed only in cases of [channel modification events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
+* `tenant.id`: Azure Active Directory tenant ID passed in all contexts.
+* `team`: Passed only in channel contexts, not in personal chat.
+ * `id`: GUID for the channel.
+ * `name`: Name of the team passed only in cases of [team rename events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
+* `channel`: Passed only in channel contexts when the bot is mentioned or for events in channels in teams where the bot has been added.
+ * `id`: GUID for the channel.
+ * `name`: Channel name passed only in cases of [channel modification events](~/bots/how-to/conversations/subscribe-to-conversation-events.md).
+* `channelData.teamsTeamId`: Deprecated. This property is only included for backward compatibility.
+* `channelData.teamsChannelId`: Deprecated. This property is only included for backward compatibility.
### Example channelData object (channelCreated event)
+The following code shows an example of channelData object:
+ ```json "channelData": { "eventType": "channelCreated",
A typical channelData object in an activity sent to your bot contains the follow
} ```
+Messages received from or sent to your bot can include different types of message content.
+ ## Message content Your bot can send rich text, pictures, and cards. Users can send rich text and pictures to your bot.
Your bot can send rich text, pictures, and cards. Users can send rich text and p
| Format | From user to bot | From bot to user | Notes | |--|||--| | Rich text | Γ£ö | Γ£ö | |
-| Pictures | ✔ | ✔ | Maximum 1024×1024 and 1 MB in PNG, JPEG, or GIF format; animated GIF are not supported |
-| Cards | Γ£û | Γ£ö | See the [Teams Card Reference](~/task-modules-and-cards/cards/cards-reference.md) for supported cards |
-| Emojis | Γ£û | Γ£ö | Teams currently supports emojis through UTF-16 (such as U+1F600 for grinning face) |
+| Pictures | ✔ | ✔ | Maximum 1024×1024 and 1 MB in PNG, JPEG, or GIF format. Animated GIF is not supported. |
+| Cards | Γ£û | Γ£ö | See the [Teams card reference](~/task-modules-and-cards/cards/cards-reference.md) for supported cards. |
+| Emojis | Γ£û | Γ£ö | Teams currently supports emojis through UTF-16, such as U+1F600 for grinning face. |
+
+You can also add notifications to your message using the `Notification.Alert` property.
-## Adding notifications to your message
+## Notifications to your message
-Notifications alert users about new tasks, mentions, and comments related to what they are working on or need to look at by inserting a notice into their activity feed. You can set notifications to trigger from your bot-message by setting the `TeamsChannelData` objects `Notification.Alert` property to true. Whether or not a notification is raised ultimately depends on the individual user's Teams settings and you cannot programmatically override these settings. The type of notification is either a banner or both a banner and an email.
+Notifications alert users about new tasks, mentions, and comments. These alerts are related to what users are working on or what they must look at by inserting a notice into their activity feed. For notifications to trigger from your bot message, set the `TeamsChannelData` objects `Notification.Alert` property to true. Whether or not a notification is raised depends on the individual user's Teams settings and you cannot override these settings. The notification type is either a banner or both a banner and an email.
-# [C#/.NET](#tab/dotnet)
+The following code shows an example of adding notifications to your message:
+
+# [C#](#tab/dotnet)
```csharp protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivi
} ```
-# [TypeScript/Node.js](#tab/typescript)
+# [TypeScript](#tab/typescript)
```typescript this.onMessage(async (turnContext, next) => {
async def on_message_activity(self, turn_context: TurnContext):
+To enhance your message, you can include pictures as attachments to that message.
+ ## Picture messages
-Pictures are sent by adding attachments to a message. You can find more information on attachments in the [Bot Framework documentation](/azure/bot-service/dotnet/bot-builder-dotnet-add-media-attachments).
+Pictures are sent by adding attachments to a message. For more information on attachments, see [Bot Framework documentation](/azure/bot-service/dotnet/bot-builder-dotnet-add-media-attachments).
Pictures can be at most 1024×1024 and 1 MB in PNG, JPEG, or GIF format. Animated GIF is not supported.
-Always specify the height and width of each image by using XML. In Markdown, the image size defaults to 256×256. For example:
+Specify the height and width of each image by using XML. In markdown, the image size defaults to 256×256. For example:
-* Use - `<img src="http://aka.ms/Fo983c" alt="Duck on a rock" height="150" width="223"></img>`
-* Don't use - `![Duck on a rock](http://aka.ms/Fo983c)`
+* Use: `<img src="http://aka.ms/Fo983c" alt="Duck on a rock" height="150" width="223"></img>`.
+* Do not use: `![Duck on a rock](http://aka.ms/Fo983c)`.
+
+A conversational bot can include adaptive cards that simplify business workflows. Adaptive cards offer rich customizable text, speech, images, buttons, and input fields.
## Adaptive cards
-Use the following code to send a simple adaptive card:
+Adaptive cards can be authored in a bot and shown in multiple apps such as Teams, your website, and so on. For more information, see [adaptive cards](~/task-modules-and-cards/cards/cards-reference.md#adaptive-card).
+
+The following code shows an example of sending a simple adaptive card:
```json {
Use the following code to send a simple adaptive card:
To know more about cards and cards in bots, see [cards documentation](~/task-modules-and-cards/what-are-cards.md).
+The next section provides status code responses for errors generated from Bot APIs.
+
+## Status code responses
+
+Following are the status codes and their error code and message values:
+
+| Status code | Error code and message values | Description |
+|-|--|--|
+| 403 | **Code**: `ConversationBlockedByUser` <br/> **Message**: "User blocked the conversation with the bot." | User blocked the bot in 1:1 chat or a channel through moderation settings. |
+| 403 | **Code**: `BotNotInConversationRoster` <br/> **Message**: "The bot is not part of the conversation roster." | The bot is not part of the conversation. |
+| 403 | **Code**: `BotDisabledByAdmin` <br/> **Message**: "The tenant admin disabled this bot." | Tenant blocked the bot. |
+| 401 | **Code**: `BotNotRegistered` <br/> **Message**: ΓÇ£No registration found for this bot.ΓÇ¥ | The registration for this bot was not found. |
+| 412 | **Code**: `PreconditionFailed` <br/> **Message**: ΓÇ£Precondition failed, please try again.ΓÇ¥ | A precondition failed on one of our dependencies due to multiple concurrent operations on the same conversation. |
+| 404 | **Code**: `ConversationNotFound` <br/> **Message**: ΓÇ£Conversation not found.ΓÇ¥ | The conversation was not found. |
+| 413 | **Code**: `MessageSizeTooBig` <br/> **Message**: ΓÇ£Message size too large.ΓÇ¥ | The size on the incoming request was too large. |
+| 429 | **Code**: `Throttled` <br/> **Message**: ΓÇ£Too many requests.ΓÇ¥ Also returns when to retry after. | Too many requests were sent by the bot. For more information, see [rate limit](~/bots/how-to/rate-limit.md). |
+
+The next section illustrates a simple code sample that incorporates basic conversational flow into a Teams application.
+ ## Code sample
-|**Sample name** | **Description** | **.NETCore** | **JavaScript** | **Python**|
+Following are the code samples for Teams conversation bot:
+
+|Sample name | Description | .NETCore | Node.js | Python |
|-|--|--|-|--|
-| Teams Conversation Bot | Messaging and conversation event handling. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/57.teams-conversation-bot)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/57.teams-conversation-bot)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/57.teams-conversation-bot) |
+| Teams conversation bot | Messaging and conversation event handling. |[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/57.teams-conversation-bot)|[View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/javascript_nodejs/57.teams-conversation-bot)| [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/57.teams-conversation-bot) |
+
+## See also
+
+> [!div class="nextstepaction"]
+> [Send proactive messages](~/bots/how-to/conversations/send-proactive-messages.md)
+> [!div class="nextstepaction"]
+> [Subscribe to conversation events](~/bots/how-to/conversations/subscribe-to-conversation-events.md)
-## Next steps
+## Next step
-* [Sending proactive messages](~/bots/how-to/conversations/send-proactive-messages.md)
-* [Subscribe to conversation events](~/bots/how-to/conversations/subscribe-to-conversation-events.md)
+> [!div class="nextstepaction"]
+> [Bot command menus](~/bots/how-to/create-a-bot-commands-menu.md)
platform Build First App Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/build-your-first-app/build-first-app-overview.md
You need a Teams account that allows custom app sideloading. (Your account may a
1. Look for an option to **Upload a custom app**. :::image type="content" source="../assets/images/build-your-first-app/upload-custom-app-closeup.png" alt-text="Illustration showing where in Teams you can upload a custom app.":::
+
+ If you don't see the button, you don't have permission to upload custom apps in your org. You can get this feature by signing up for a free Microsoft 365 developer subscription.
<!-- markdownlint-disable MD033 --> <details>
-<summary><b>Select here</b> if you can't see the sideload option or don't have a Teams account.</summary>
+<summary><b>Get your free Microsoft 365 developer subscription</b></summary>
You can get a free Teams test account that allows app sideloading by joining the Microsoft 365 developer program. (The registration process takes approximately two minutes.)
platform Overview https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/concepts/deploy-and-publish/appsource/post-publish/overview.md
When a user installs your application one of the first things they do is consent
>[!div class="checklist"] >
-> * A bot was added or removed.
-> * An existing bot's unique `botId` value changed.
-> * An existing bot's `isNotificationOnly` boolean value changed.
-> * An existing bot's `supportsFiles` boolean value changed.
-> * A messaging extension (`composeExtensions`) was added or removed.
-> * A new connector was added.
-> * A new static/personal tab was added.
-> * A new configurable group/channel tab was added.
-> * The `webApplicationInfo` values changed.
->
+> * A bot is added or removed.
+> * An existing bot's unique `botId` value is changed.
+> * An existing bot's `isNotificationOnly` boolean value is changed.
+> * An existing bot's `supportsFiles` or `supportsCalling` boolean value is changed.
+> * A messaging extension `composeExtensions` is added or removed.
+> * A new connector is added.
+> * A new static or personal tab is added.
+> * A new configurable group or channel tab is added.
+> * The properties inside `webApplicationInfo` are changed. For changes to `webApplicationInfo`, consent is only required in the Teams scope.
### Images of user consent flow:
platform Removing Tab Margins https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/removing-tab-margins.md
Removing the margins around all tabs will allow developers to build apps that lo
:::image type="content" source="../assets/images/tabs/remove-margins-tabs.png" alt-text="Tab wit and without margins" border="false":::
+> [!NOTE]
+> This feature is not applicable to mobile clients, as the tabs viewed in the mobile clients do not have margins.
+ ## Timelines * March 5, 2021 - Margins removed in [Public Developer Preview](~/resources/dev-preview/developer-preview-intro.md).
platform Manifest Schema https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/resources/schema/manifest-schema.md
keywords: teams manifest schema
# Reference: Manifest schema for Microsoft Teams
-The Teams manifest describes how the app integrates into the Microsoft Teams product. Your manifest must conform to the schema hosted at [`https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json`]( https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json). Previous versions 1.0-1.4 are also supported (using "v1.x" in the URL).
+The Teams manifest describes how the app integrates into the Microsoft Teams product. Your manifest must conform to the schema hosted at [`https://developer.microsoft.com/json-schemas/teams/v1.9/MicrosoftTeams.schema.json`]( https://developer.microsoft.com/json-schemas/teams/v1.9/MicrosoftTeams.schema.json). Previous versions 1.0-1.4 are also supported (using "v1.x" in the URL).
The following schema sample shows all extensibility options.
The following schema sample shows all extensibility options.
```json {
- "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
- "manifestVersion": "1.8",
+ "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.9/MicrosoftTeams.schema.json",
+ "manifestVersion": "1.9",
"version": "1.0.0", "id": "%MICROSOFT-APP-ID%", "packageName": "com.example.myapp",
The following schema sample shows all extensibility options.
} ] },
- "defaultInstallScope": {
- "type": "string",
- "enum": [
- "personal",
- "team",
- "groupchat",
- "meetings"
- ],
- "description": "The install scope is defined for this app by default. It is the option displayed on the button when a user tries to add the app."
- },
- "defaultGroupCapability": {
- "type": "object",
- "properties": {
- "team": {
- "type": "string",
- "enum": [
- "tab",
- "bot",
- "connector"
- ],
- "description": "When the selected install scope is Team, this field specifies the default capability available."
- },
- "groupchat": {
- "type": "string",
- "enum": [
- "tab",
- "bot",
- "connector"
- ],
- "description": "When the selected install scope is Group Chat, this field specifies the default capability available."
- },
- "meetings": {
- "type": "string",
- "enum": [
- "tab",
- "bot",
- "connector"
- ],
- "description": "When the selected install scope is Meetings, this field specifies the default capability available."
- }
- },
- "description": "When a group install scope is selected, this defines the default capability when the user installs the app.",
- "additionalProperties": false
-
+ "defaultInstallScope": "meetings",
+ "defaultGroupCapability": {"meetings": "tab" , "team": "bot", "groupchat": "bot"}
} ```
The https:// URL referencing the JSON Schema for the manifest.
**Required** ΓÇö string
-The version of manifest schema this manifest is using. It must be 1.7.
+The version of manifest schema this manifest is using. It must be 1.9.
## version