如何将其他信息传递给团队的 OnTeamsMessagingExtensionFetchTaskAsync 和 OnTeamsMessagingExtensionSubmitActionAsync 处理程序

How to pass additional information to OnTeamsMessagingExtensionFetchTaskAsync and OnTeamsMessagingExtensionSubmitActionAsync handlers from Teams

我在本地有一个适用于 Teams 运行 的消息传递扩展,具体取决于我调用它的位置(示例 - 撰写框或消息)我将获得“ITurnContext turnContext”和“MessagingExtensionAction 操作”对象给机器人处理程序。 我正在寻找一种方法来传递一些附加参数以及我之前提到的这些对象。 可能吗?

如果你查看这两个微软关于OnTeamsMessagingExtensionFetchTaskAsync and OnTeamsMessagingExtensionSubmitActionAsync方法的官方文档,你会发现这两个方法只需要三个参数:

  1. turnContext - 本回合的强类型上下文对象。
  2. action - 消息扩展操作。
  3. cancellationToken - 其他对象或线程可用于接收取消通知的取消令牌。

因此,目前您无法传递除上述参数之外的其他参数。以下代码片段显示了这些方法的基本语法。

protected override async Task<MessagingExtensionActionResponse> 
OnTeamsMessagingExtensionFetchTaskAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken)
{
    ...
}
protected override async Task<MessagingExtensionActionResponse> 
OnTeamsMessagingExtensionSubmitActionAsync(ITurnContext<IInvokeActivity> turnContext, MessagingExtensionAction action, CancellationToken cancellationToken)
{
    ...
}

我建议您阅读此 Bot Framework Teams Messaging Extensions Walkthrough and Respond to the task module submit action 文档以获取更多信息。

您不能更改或添加您正在覆盖的方法的参数。但是在提交消息扩展时,您可以在 OnTeamsMessagingExtensionSubmitActionAsync

action 参数中获取它

使用自适应卡时,您可以在自适应卡的提交按钮中将其作为数据发送。

{
    "type": "Action.Submit",
    "title": "OK",
    "data": {
        "AdditionalData": "TestData"
    }
}

或者您也可以使用 SDK 传递数据 - microsoftTeams.tasks.submitTask({ additionalData: "someData" });.