Language

TeamsCardButtonClickedRouteAttribute(Boolean, UInt16, String) Constructor

Definition

Attribute to define a route that handles Teams message extension card button clicked events.

public TeamsCardButtonClickedRouteAttribute(bool isAgenticOnly = false, ushort rank = 32767, string signInHandlers = default);
new Microsoft.Agents.Extensions.MSTeams.MessageExtensions.TeamsCardButtonClickedRouteAttribute : bool * uint16 * string -> Microsoft.Agents.Extensions.MSTeams.MessageExtensions.TeamsCardButtonClickedRouteAttribute
Public Sub New (Optional isAgenticOnly As Boolean = false, Optional rank As UShort = 32767, Optional signInHandlers As String = Nothing)

Parameters

isAgenticOnly
Boolean

When true, the route only fires for agentic turns. Defaults to false.

rank
UInt16

Route evaluation order. Lower values run first. Defaults to Unspecified.

signInHandlers
String

A comma/space/semicolon-delimited list of OAuth sign-in handler names, or the name of an instance method on the agent class matching Func<ITurnContext, string[]>.

Remarks

Decorate a method with this attribute to register it as a handler for message extension card button click events in Teams. The method must match the CardButtonClickedHandler<TData> delegate signature, where TData is inferred from the method's third parameter type.

public record ApprovalAction(string ItemId, string Decision);

[TeamsCardButtonClickedRoute]
public async Task OnApprovalClickedAsync(ITeamsTurnContext turnContext, ITurnState turnState, ApprovalAction cardData, CancellationToken cancellationToken)
{
    await _approvalService.RecordAsync(cardData.ItemId, cardData.Decision, cancellationToken);
    await turnContext.SendActivityAsync($"Decision '{cardData.Decision}' recorded.", cancellationToken: cancellationToken);
}

Alternatively, OnCardButtonClicked<TData>(CardButtonClickedHandler<TData>, String[], UInt16) can be used to register the handler via the fluent API.

Applies to