diff --git a/msteams-platform/concepts/device-capabilities/third-party-storage-capability.md b/msteams-platform/concepts/device-capabilities/third-party-storage-capability.md index c3a995d3ad5..a4ca2f7d08d 100644 --- a/msteams-platform/concepts/device-capabilities/third-party-storage-capability.md +++ b/msteams-platform/concepts/device-capabilities/third-party-storage-capability.md @@ -3,7 +3,7 @@ title: Enable Third-party Cloud Storage description: Learn how to set third-party storage app for your Teams app for the files that are dragged and dropped in a message compose area of a Teams chat or channel. ms.localizationpriority: medium ms.topic: how-to -ms.date: 02/26/2025 +ms.date: 06/23/2026 --- # Third-party cloud storage app @@ -16,11 +16,11 @@ For Teams app to support third-party cloud storage for drag-dropped files: * Use the latest version of the [TeamsJS SDK](/javascript/api/@microsoft/teams-js). -* The app manifest (previously called Teams app manifest) must be configured with the app ID of the third-party storage app. Search for the property named `defaultFilesUploadAppId` and configure the app ID. +* The app manifest (previously called Teams app manifest) must be configured with the app ID of the third-party storage app. Search for the property named `defaultFilesUploadAppId` and configure the app ID. > [!NOTE] > Use plain string only and do not use inverted commas. - + Alternatively, admins can also configure the third-party cloud storage app ID. For more information, see [admin settings for file drag-drop to third-party storage](/MicrosoftTeams/admin-settings-for-file-drag-drop-to-third-party-storage). * The app manifest must have the first action as `Upload`. This action automatically opens the app in upload mode when files are drag-dropped into the message compose area. @@ -193,7 +193,7 @@ Here's how the files are uploaded to third-party cloud storage app: Sample name | Description | Node.js | .NET | Python | |----------------|-----------------|--------------|----------------|----------------| -| Third-party cloud storage | Demonstrates how to implement third-party cloud storage app for files that are drag-dropped in the message compose area. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-thirdparty-storage/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-thirdparty-storage/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-thirdparty-storage/python) | +| Third-party cloud storage | Demonstrates how to implement third-party cloud storage app for files that are drag-dropped in the message compose area. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-thirdparty-storage/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-thirdparty-storage/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-thirdparty-storage/python) | ## See also diff --git a/msteams-platform/includes/messaging-extensions/learn-more.md b/msteams-platform/includes/messaging-extensions/learn-more.md index f4743964359..7366c045b67 100644 --- a/msteams-platform/includes/messaging-extensions/learn-more.md +++ b/msteams-platform/includes/messaging-extensions/learn-more.md @@ -5,4 +5,4 @@ Try it out in a quickstart: | **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | **Manifest** | |---------------|---------------|-----------|----------|----------|----------| | Message extension with action-based commands |This sample demonstrates how to create action-based message extensions for Microsoft Teams, enabling users to interactively generate content. It features bots, message extensions, and seamless integration with user inputs for enhanced functionality. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/nodejs) | [View]( https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp/demo-manifest/msgext-action.zip)| - | Message extension with search-based commands | This sample demonstrates how to create a C# message extension in Microsoft Teams that allows users to perform searches and retrieve results. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp/demo-manifest/msgext-search.zip)| + | Message extension with search-based commands | This sample demonstrates how to create a C# message extension in Microsoft Teams that allows users to perform searches and retrieve results. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp/demo-manifest/msgext-search.zip)| diff --git a/msteams-platform/m365-apps/cards-loop-component.md b/msteams-platform/m365-apps/cards-loop-component.md index 274d6703e73..1be51f790f6 100644 --- a/msteams-platform/m365-apps/cards-loop-component.md +++ b/msteams-platform/m365-apps/cards-loop-component.md @@ -3,7 +3,7 @@ title: Loop Component in Adaptive Cards description: Learn how to build and test Adaptive Card-based Loop components for collaborative experiences within Microsoft Teams. ms.localizationpriority: high ms.topic: reference -ms.date: 10/11/2024 +ms.date: 06/23/2026 --- # Adaptive Card-based Loop components @@ -84,7 +84,7 @@ The following JSON payload is an example of an Adaptive Card-based Loop componen |**Sample name** | **Description** | **Node.js** | **.NET** | **Manifest** | |----------------|-----------------|--------------|--------------|--------------| -| Message extension with Adaptive Card-based Loop component | This sample demonstrates a message extension that uses Adaptive Card-based loop components to enable link unfurling and dynamic interactions in the compose area. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-unfurling-ac-loop-components/nodejs)| [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-unfurling-ac-loop-components/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-unfurling-ac-loop-components/nodejs/demo-manifest/msgext-unfurling-ac-loop-components.zip) | +| Message extension with Adaptive Card-based Loop component | This sample demonstrates a message extension that uses Adaptive Card-based loop components to enable link unfurling and dynamic interactions in the compose area. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-unfurling-ac-loop-components/nodejs)| [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-unfurling-ac-loop-components/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-unfurling-ac-loop-components/nodejs/demo-manifest/msgext-unfurling-ac-loop-components.zip) | ## See also diff --git a/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md b/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md index f3134bb01d6..7d186dbc8b2 100644 --- a/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md +++ b/msteams-platform/messaging-extensions/how-to/action-commands/create-task-module.md @@ -3,9 +3,9 @@ title: Modal Dialogs in Message Extensions description: Learn to create and send dialogs (task modules). Handle the initial invoke action and respond with a dialog (task module) from an action message extension command. ms.localizationpriority: medium ms.topic: article -ms.author: anclear +ms.author: nickwalk ms.owner: ginobuzz -ms.date: 03/11/2025 +ms.date: 06/23/2026 --- # Create and send dialogs @@ -985,7 +985,7 @@ private static Attachment GetAdaptiveCardAttachmentFromFile(string fileName) |:---------------------|:--------------|:---------|:--------|:--------|:--------| |Teams message extension action| This sample demonstrates how to create Action-Based Messaging Extensions for Microsoft Teams, enabling users to interactively generate content. It features bots, message extensions, and seamless integration with user inputs for enhanced functionality. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp/demo-manifest/msgext-action.zip) |Message extension action preview| This sample app illustrates how to utilize action previews in Teams Messaging Extensions, allowing users to create cards from input in a Task Module. It showcases bot interactions that enhance user engagement by attributing messages to users. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/nodejs) |NA|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp/demo-manifest/msgext-action-preview.zip) | -|Teams message extension search | This sample demonstrates how to create a Messaging Extension in Microsoft Teams that allows users to perform searches and retrieve results. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/python)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp/demo-manifest/msgext-search.zip) +|Teams message extension search | This sample demonstrates how to create a Messaging Extension in Microsoft Teams that allows users to perform searches and retrieve results. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/python)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp/demo-manifest/msgext-search.zip) ## Next step diff --git a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md index 614a7247b99..7944774248b 100644 --- a/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md +++ b/msteams-platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit.md @@ -628,7 +628,7 @@ The following section is a description of the entities in the `OnBehalfOf` Array |:---------------------|:--------------|:---------|:--------|:--------| |Teams message extension action| This sample demonstrates how to create action-based message extensions for Microsoft Teams, enabling users to interactively generate content. It features bots, message extensions, and seamless integration with user inputs for enhanced functionality. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/nodejs) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp/demo-manifest/msgext-action.zip) |Message extension action preview| This sample app illustrates how to utilize action previews in Teams message extensions, allowing users to create cards from input in a Task Module. It showcases bot interactions that enhance user engagement by attributing messages to users. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/nodejs) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp/demo-manifest/msgext-action-preview.zip) | -|Teams message extension search | This sample demonstrates how to create a message extension in Microsoft Teams that allows users to perform searches and retrieve results.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp/demo-manifest/msgext-search.zip) +|Teams message extension search | This sample demonstrates how to create a message extension in Microsoft Teams that allows users to perform searches and retrieve results.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp/demo-manifest/msgext-search.zip) ## Next Step diff --git a/msteams-platform/messaging-extensions/how-to/add-authentication.md b/msteams-platform/messaging-extensions/how-to/add-authentication.md index 2bbb39a4014..37f3ab16731 100644 --- a/msteams-platform/messaging-extensions/how-to/add-authentication.md +++ b/msteams-platform/messaging-extensions/how-to/add-authentication.md @@ -3,8 +3,8 @@ title: Enable Third Party IdP Authentication description: Enable authentication in Teams message extension app using third-party provider with Microsoft Entra configuration and code sample. ms.localizationpriority: medium ms.topic: article -ms.author: anclear -ms.date: 03/11/2025 +ms.author: nickwalk +ms.date: 06/23/2026 --- # Add third party authentication to your message extension @@ -142,7 +142,7 @@ At this point, the window closes and the control is passed to the Teams client. |**Sample name** | **Description** |**.NET** | **Node.js**| **Manifest**| |----------------|-----------------|--------------|----------------|----------------| -|Message extensions - auth and config | This sample demonstrates how to implement authentication in a C# message extension for Microsoft Teams, enabling secure access and user-specific interactions. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-auth-config/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-sso-config/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-auth-config/csharp/demo-manifest/msgext-search-auth-config.zip)| +|Message extensions - auth and config | This sample demonstrates how to implement authentication in a C# message extension for Microsoft Teams, enabling secure access and user-specific interactions. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search-auth-config/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search-sso-config/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search-auth-config/csharp/demo-manifest/msgext-search-auth-config.zip)| ## See also diff --git a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md index 89ff80aa793..6e84817f511 100644 --- a/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md +++ b/msteams-platform/messaging-extensions/how-to/search-commands/define-search-command.md @@ -2,8 +2,8 @@ title: Create Search Commands for App description: Learn about message extension search commands for Teams apps, to create a search command through app manifest and manually. ms.topic: article -ms.author: anclear -ms.date: 09/16/2024 +ms.author: nickwalk +ms.date: 06/23/2026 ms.localizationpriority: medium ms.owner: slamba --- @@ -171,7 +171,7 @@ protected override async Task OnTeamsMessagingExtens # [Node.js](#tab/nodejs) -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search-quickstart/js/botActivityHandler.js#L30-L53) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search-quickstart/js/botActivityHandler.js#L30-L53) ```javascript async handleTeamsMessagingExtensionQuery(context, query) { diff --git a/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md b/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md index 73e7b468f37..506fb4820f9 100644 --- a/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md +++ b/msteams-platform/messaging-extensions/how-to/search-commands/respond-to-search.md @@ -2,8 +2,8 @@ title: Respond to Search Command in Teams description: Learn how to respond to the search command from a message extension in a Microsoft Teams app. Understand how to respond to the user request. ms.topic: article -ms.author: anclear -ms.date: 03/06/2025 +ms.author: nickwalk +ms.date: 06/23/2026 ms.localizationpriority: medium --- # Respond to search command @@ -41,7 +41,7 @@ protected override async Task OnTeamsMessagingExtens # [TypeScript/Node.js](#tab/typescript) -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L16) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L16) ```typescript class TeamsMessagingExtensionsSearch extends TeamsActivityHandler { @@ -236,7 +236,7 @@ protected override async Task OnTeamsMessagingExtens # [TypeScript/Node.js](#tab/typescript2) -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search-quickstart/js/botActivityHandler.js#L35) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search-quickstart/js/botActivityHandler.js#L35) ```typescript class TeamsMessagingExtensionsSearchBot extends TeamsActivityHandler { @@ -477,7 +477,7 @@ When a user selects a result from the message extension search query, the previe # [.NET](#tab/csharp3) -* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search/csharp/Bots/TeamsMessagingExtensionsSearchBot.cs#L80) +* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search/csharp/Bots/TeamsMessagingExtensionsSearchBot.cs#L80) ```csharp protected override Task OnTeamsMessagingExtensionSelectItemAsync(ITurnContext turnContext, JObject query, CancellationToken cancellationToken) @@ -511,7 +511,7 @@ protected override Task OnTeamsMessagingExtensionSel # [TypeScript/Node.js](#tab/typescript3) -* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L115) +* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L115) ```typescript async handleTeamsMessagingExtensionSelectItem(context, obj) { @@ -601,7 +601,7 @@ The default query has the same structure as any regular user query, except it ha | Sample name | Description | .NET | Node.js | Manifest | |:---------------------|:--------------|:---------|:--------|:--------| -| Teams message extension search | This sample demonstrates how to create a message extension in Teams that allows users searches for NuGet packages and retrieve the results as a card. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp/demo-manifest/msgext-search.zip) +| Teams message extension search | This sample demonstrates how to create a message extension in Teams that allows users searches for NuGet packages and retrieve the results as a card. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp/demo-manifest/msgext-search.zip) |Teams message extension auth and config | This sample demonstrates how to implement authentication in a message extension for Teams, enabling secure access and user-specific interactions. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-auth-config/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-sso-config/nodejs)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search-auth-config/csharp/demo-manifest/msgext-search-auth-config.zip) ## Next step diff --git a/msteams-platform/messaging-extensions/what-are-messaging-extensions.md b/msteams-platform/messaging-extensions/what-are-messaging-extensions.md index 932f8963546..adc050fd13c 100644 --- a/msteams-platform/messaging-extensions/what-are-messaging-extensions.md +++ b/msteams-platform/messaging-extensions/what-are-messaging-extensions.md @@ -3,9 +3,9 @@ title: Message extensions description: Learn how to build message extensions and the scenarios where they are used. Explore samples on action and search based message extensions. ms.localizationpriority: medium ms.topic: overview -ms.author: anclear +ms.author: nickwalk ms.owner: slamba -ms.date: 01/23/2025 +ms.date: 06/23/2026 --- # Build message extensions @@ -143,7 +143,7 @@ The following table helps you select a message extension type to get started: | **Sample name** | **Description** | **.NET** | **Node.js** | **Python** | **Manifest**| |------------|-------------|----------------|------------|------------|------------| | Message extension with action-based commands | This sample demonstrates how to create Action-Based Message Extensions for Microsoft Teams, enabling users to interactively generate content. It features bots, message extensions, and seamless integration with user inputs for enhanced functionality. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action/csharp/demo-manifest/msgext-action.zip) -| Message extension with search-based commands | This sample demonstrates how to create a Message Extension in Microsoft Teams that allows users to perform searches and retrieve results. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-search/csharp/demo-manifest/msgext-search.zip) +| Message extension with search-based commands | This sample demonstrates how to create a Message Extension in Microsoft Teams that allows users to perform searches and retrieve results. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/nodejs) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/python) |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/msgext-search/csharp/demo-manifest/msgext-search.zip) |Message extension action preview| This sample app illustrates how to utilize action previews in Teams Message Extensions, allowing users to create cards from input in a Task Module. It showcases bot interactions that enhance user engagement by attributing messages to users. |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/nodejs) |NA|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-action-preview/csharp/demo-manifest/msgext-action-preview.zip) | |Message extension action for task scheduling|This sample demonstrates a Message Extension that allows users to schedule tasks and receive reminder cards in Microsoft Teams.|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp)|[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/nodejs)| NA |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-message-reminder/csharp/demo-manifest/msgext-message-reminder.zip)| | Northwind inventory message extension| This sample implements a Teams message extension that can be used as a plugin for Microsoft 365 Copilot. The message extension allows users to query the Northwind Database. | NA |[View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/msgext-copilot-handoff/ts) |NA |NA diff --git a/msteams-platform/resources/messaging-extension-v3/create-extensions.md b/msteams-platform/resources/messaging-extension-v3/create-extensions.md index c7377f0dfcb..372991475ac 100644 --- a/msteams-platform/resources/messaging-extension-v3/create-extensions.md +++ b/msteams-platform/resources/messaging-extension-v3/create-extensions.md @@ -499,7 +499,7 @@ When responding to the `edit` request, you must respond with a `task` response w # [TypeScript/Node.js](#tab/typescript) -* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L115) +* [Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/msgext-search/nodejs/bots/teamsMessagingExtensionsSearchBot.js#L115) ```typescript teamChatConnector.onComposeExtensionSubmitAction(( diff --git a/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md b/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md index 6c499a35ae7..21dcaa3c3cb 100644 --- a/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md +++ b/msteams-platform/webhooks-and-connectors/how-to/add-outgoing-webhook.md @@ -4,7 +4,7 @@ description: Learn how to create Outgoing Webhook in Microsoft Teams, its key fe ms.topic: article ms.localizationpriority: high ms.owner: hantony -ms.date: 02/27/2023 +ms.date: 06/23/2026 --- # Create Outgoing Webhooks @@ -94,12 +94,12 @@ To ensure that your service is receiving calls only from actual Teams clients, T Your code must always validate the HMAC signature included in the request as follows: -* Generate the HMAC token from the request body of the message. There are standard libraries to do this on most platform, such as [Crypto](https://nodejs.org/api/crypto.html#crypto_crypto) for Node.js and [Teams webhook sample](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/outgoing-webhook) for C\#. Microsoft Teams uses standard SHA256 HMAC cryptography. You must convert the body to a byte array in UTF8. +* Generate the HMAC token from the request body of the message. There are standard libraries to do this on most platform, such as [Crypto](https://nodejs.org/api/crypto.html#crypto_crypto) for Node.js and [Teams webhook sample](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/outgoing-webhook) for C\#. Microsoft Teams uses standard SHA256 HMAC cryptography. You must convert the body to a byte array in UTF8. * Compute the hash from the byte array of the security token provided by Teams when you registered the Outgoing Webhook in the Teams client. See [create an Outgoing Webhook](#create-outgoing-webhooks). * Convert the hash to a string using UTF-8 encoding. * Compare the string value of the generated hash with the value provided in the HTTP request. -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/outgoing-webhook/csharp/Models/AuthProvider.cs#L63C13-L63C13) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/outgoing-webhook/csharp/Models/AuthProvider.cs#L63C13-L63C13) ```csharp public static AuthResponse Validate(AuthenticationHeaderValue authenticationHeaderValue, string messageContent, string claimedSenderId) @@ -167,7 +167,7 @@ The following codes are examples of an Adaptive Card response: # [C#/.NET](#tab/dotnet) -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/outgoing-webhook/csharp/Controllers/SampleController.cs#L20) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/outgoing-webhook/csharp/Controllers/SampleController.cs#L20) ```csharp @@ -204,7 +204,7 @@ return sampleResponseActivity; # [JavaScript/Node.js](#tab/javascript) -[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/outgoing-webhook/nodejs/app.js#L30) +[Sample code reference](https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/TeamsSDK/Archived/outgoing-webhook/nodejs/app.js#L30) ```javascript var receivedMsg = JSON.parse(payload); @@ -311,7 +311,7 @@ response_msg = json.dumps({ |**Sample name** | **Description** | **.NET** | **Node.js** | |----------------|------------------|--------|----------------| -| Outgoing Webhooks | This sample demonstrates how to implement a straightforward Outgoing Webhook for Microsoft Teams, allowing users to send messages to external services without the complexity of creating a full bot. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/outgoing-webhook/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/outgoing-webhook/nodejs)| +| Outgoing Webhooks | This sample demonstrates how to implement a straightforward Outgoing Webhook for Microsoft Teams, allowing users to send messages to external services without the complexity of creating a full bot. | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/outgoing-webhook/csharp) | [View](https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/TeamsSDK/Archived/outgoing-webhook/nodejs)| ## See also