Updates from: 04/15/2021 03:19:26
Service Microsoft Docs article Related commit history on GitHub Change details
platform Subscribe To Conversation Events https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/bots/how-to/conversations/subscribe-to-conversation-events.md
The `messageReaction` event is sent when a user adds or removes reactions to a m
| EventType | Payload object | Description | Scope | | | - | -- | -- |
-| messageReaction | reactionsAdded | [Reactions to a bot message](#reactions-to-a-bot-message) | All |
-| messageReaction | reactionsRemoved | [Reactions removed from bot message](#reactions-removed-from-bot-message) | All |
+| messageReaction | reactionsAdded | [Reactions added to bot message](#reactions-added-to-bot-message). | All |
+| messageReaction | reactionsRemoved | [Reactions removed from bot message](#reactions-removed-from-bot-message). | All |
-### Reactions to a bot message
+### Reactions added to bot message
The following code shows an example of reactions to a bot message:
async def on_reactions_removed(
* * *
-## Code sample
+## Installation update event
+
+The bot receives an `installationUpdate` event when you install a bot to a conversation thread. Uninstallation of the bot from the thread also triggers the event. On installing a bot, the **action** field in the event is set to *add*, and when the bot is uninstalled the **action** field is set to *remove*.
+
+> [!NOTE]
+> When you upgrade an application, and then add or remove a bot, the action also triggers the `installationUpdate` event. The **action** field is set to *add-upgrade* if you add a bot or *remove-upgrade* if you remove a bot.
+
+> [!IMPORTANT]
+> Installation update events are in developer preview today and will be Generally Available (GA) in March 2021. To see the installation update events, you can move your Teams client to public developer preview, and add your app personally or to a team or a chat.
+
+### Install update event
+Use the `installationUpdate` event to send an introductory message from your bot on installation. This event helps you to meet your privacy and data retention requirements. You can also clean up and delete user or thread data when the bot is uninstalled.
+
+# [C#/.NET](#tab/dotnet)
+
+```csharp
+protected override async Task
+OnInstallationUpdateActivityAsync(ITurnContext<IInstallationUpdateActivity> turnContext, CancellationToken cancellationToken) {
+var activity = turnContext.Activity; if
+(string.Equals(activity.Action, "Add",
+StringComparison.InvariantCultureIgnoreCase)) {
+// TO:DO Installation workflow }
+else
+{ // TO:DO Uninstallation workflow
+} return; }
+```
+
+You can also use a dedicated handler for *add* or *remove* scenarios as an alternative method to capture an event.
+
+```csharp
+protected override async Task
+OnInstallationUpdateAddAsync(ITurnContext<IInstallationUpdateActivity>
+turnContext, CancellationToken cancellationToken) {
+// TO:DO Installation workflow return;
+}
+```
-The following table provides a simple code sample that incorporates bots conversation events into a Teams application:
+# [JSON](#tab/json)
+
+```json
+{
+ "action": "add",
+ "type": "installationUpdate",
+ "timestamp": "2020-10-20T22:08:07.869Z",
+ "id": "f:3033745319439849398",
+ "channelId": "msteams",
+ "serviceUrl": "https://smba.trafficmanager.net/amer/",
+ "from": {
+ "id": "sample id",
+ "aadObjectId": "sample AAD Object ID"
+ },
+ "conversation": {
+ "isGroup": true,
+ "conversationType": "channel",
+ "tenantId": "sample tenant ID",
+ "id": "sample conversation Id@thread.skype"
+ },
+
+ "recipient": {
+ "id": "sample reciepent bot ID",
+ "name": "bot name"
+ },
+ "entities": [
+ {
+ "locale": "en",
+ "platform": "Windows",
+ "type": "clientInfo"
+ }
+ ],
+ "channelData": {
+ "settings": {
+ "selectedChannel": {
+ "id": "sample channel ID@thread.skype"
+ }
+ },
+ "channel": {
+ "id": "sample channel ID"
+ },
+ "team": {
+ "id": "sample team ID"
+ },
+ "tenant": {
+ "id": "sample tenant ID"
+ },
+ "source": {
+ "name": "message"
+ }
+ },
+ "locale": "en"
+}
+```
+* * *
+
+## Code sample
-| Sample | Description | .NET Core |
-|--|- ||
-| Teams bots conversation events sample | Bot Framework v4 conversation bot sample for Teams. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/57.teams-conversation-bot)|
+| **Sample name** | **Description** | **.NET** |
+|--|--||
+|Microsoft Teams bots conversation events | Sample for bot events. | [View](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/57.teams-conversation-bot) |
## Next step
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 can build Teams apps with your preferred tools, but these lessons show how y
Teams displays app content only through HTTPS connections. To debug certain types of apps locally, such as a bot, you'll learn how to use [ngrok to set up a secure tunnel](../concepts/build-and-test/debug.md#locally-hosted) between Teams and your app. (Production Teams apps are hosted in the cloud.) 1. Install [Node.js](https://nodejs.org/en/).
-1. Install [ngrok](https://ngrok.com/download) if you plan to build a bot or messaging extension.
+1. Install [ngrok](https://ngrok.com/download) if you are building a bot or messaging extension and [create a tunnel using ngrok](https://docs.microsoft.com/microsoftteams/platform/tutorials/get-started-dotnet-app-studio#tunnel-using-ngrok).
1. Install the latest version of [Visual Studio Code](https://code.visualstudio.com/download). (Earlier versions might not work with the toolkit.) 1. In Visual Studio Code, select **Extensions** :::image type="icon" source="../assets/icons/vs-code-extensions.png"::: on the left Activity Bar and install the **Microsoft Teams Toolkit**.
platform Tabs Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/master/msteams-platform/tabs/design/tabs-mobile.md
keywords: teams design guidelines reference framework personal apps mobile tabs
Custom tabs can be part of a channel, group chat, or personal app (apps that contain static tabs and/or a one-to-one bot).
-Personal apps are available on mobile clients in the app drawer. The app can only be installed from a desktop or web client, and can take up to 24 hours to appear on mobile clients.
+Personal apps are available on mobile clients in the app drawer. The app can only be installed from a desktop or web client, and can take up to 24 hours to appear on mobile clients. Alternatively, you can enforce a reload on the mobile client by signing out and in. This should make the mobile app available right away.
Channel tabs are also available on mobile. The default behavior is currently to use your `websiteUrl` to launch your tab in a browser window. However, they can be loaded on a mobile client by clicking the `...` overflow menu next to the tab and choosing **Open**, which will use your `contentUrl` to load the tab inside the Teams mobile client.
Mobile clients regularly need to function with low bandwidth and intermittent co
> [!NOTE] > Tabs are enabled on mobile only after the application is added to an allow list, based on the input of the approval team.
-> To check mobile responsiveness, reach out to teamsubm@microsoft.com.
+> To check mobile responsiveness, reach out to teamsubm@microsoft.com.