如何获取从 Bot Framework Composer 发送的消息的 ResourceResponse.Id
How to get ResourceResponse.Id of a message being sent from Bot Framework Composer
我知道如何在 composer 之外的代码中执行此操作,但是有没有办法在 composer 中使用它?
有这个:How to get message id of sent message Bot Framework (Teams channel)?但它不是作曲家的。
它必须在自定义操作中(如您所述),然后在结果中返回资源 ID 属性,以便您可以在其他地方使用它。自定义操作的 BeginDialogAsync
方法是这样的:
public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null, CancellationToken cancellationToken = default(CancellationToken))
{
var activity = Activity.CreateMessageActivity();
//...
var resource = await dc.Context.SendActivityAsync(activity);
if (this.ResultProperty != null)
{
dc.State.SetValue(this.ResultProperty.GetValue(dc.State), result);
}
return await dc.EndDialogAsync(result: result, cancellationToken: cancellationToken);
}
更新
更新代码使用“ResultProperty”属性,就像自定义运行时中的示例自定义操作一样。这样自定义操作将更容易重用。
我知道如何在 composer 之外的代码中执行此操作,但是有没有办法在 composer 中使用它?
有这个:How to get message id of sent message Bot Framework (Teams channel)?但它不是作曲家的。
它必须在自定义操作中(如您所述),然后在结果中返回资源 ID 属性,以便您可以在其他地方使用它。自定义操作的 BeginDialogAsync
方法是这样的:
public override async Task<DialogTurnResult> BeginDialogAsync(DialogContext dc, object options = null, CancellationToken cancellationToken = default(CancellationToken))
{
var activity = Activity.CreateMessageActivity();
//...
var resource = await dc.Context.SendActivityAsync(activity);
if (this.ResultProperty != null)
{
dc.State.SetValue(this.ResultProperty.GetValue(dc.State), result);
}
return await dc.EndDialogAsync(result: result, cancellationToken: cancellationToken);
}
更新
更新代码使用“ResultProperty”属性,就像自定义运行时中的示例自定义操作一样。这样自定义操作将更容易重用。