如何获取已发送邮件Bot Framework(团队频道)的邮件ID?

时间:2019-12-13 19:52:52

标签: botframework microsoft-teams messageid

我正在使用Java的Bot Framework SDK。我的机器人已连接到团队频道。现在,我正在将机器人发出的所有传出消息都保存到数据库中。

但是我也想保存用户对我的消息的反应。这就是为什么我使用TeamsActivityHandleronReactionsAdded方法(link)的原因。在文档中写道replyToId的{​​{1}}字段是用户正在响应的消息的ID。

但是当我通过turnContext向用户发送消息时,我不知道在团队端将为此消息提供的内部ID,这就是为什么我不能对存储在我的数据库中的消息进行配对反应。

所以我的问题是,通过turnContext.sendActivity()发送消息后如何获取消息ID,该消息随后将在turnContext.sendActivity()字段中发送给replyToId处理程序?

换句话说,我想收集有关我的机器人发送给用户的消息的反馈(通过响应),并将其保存到我的数据库(消息和响应)中。

2 个答案:

答案 0 :(得分:0)

实际上,经过一段时间的尝试,turnContext.sendActivity()返回了ResourceIdentifier,其中包含一个字段id,而id是将被赋予消息的ID在团队方面。

答案 1 :(得分:0)

您可以在await命令之后访问活动参数以获取此ID。因此,如果我们在可变答复中有响应(可以是文本,英雄卡片等...),则可以在等待之后获取ID(在重写async Task OnMessageActivityAsync方法内部)

await turnContext.SendActivityAsync(reply, cancellationToken);

string responseMsgId = reply.Id;