Microsoft Teams Bot:replyToId 似乎被忽略了
Microsoft Teams Bot: replyToId seems to be ignored
我将 Microsoft bot sdk 与 restify 服务器结合使用(在 package.json
中: "botbuilder": "^4.11.0"
)。我启动了一个瀑布对话框,它触发了一个很长的 运行 API。我保存对话引用和已发送消息的 ID,以便在 API 调用完成后创建回复:
replyToId = (await stepContext.context.sendActivity({ attachments: [ac]})).id;
(在对话框中)
this.conversationReference = TurnContext.getConversationReference(context.activity);
(在bot.ts
)
完成 API 调用后,我想创建对对话框最后一条消息的回复:
await this.adapter.continueConversation(this.conversationReference, async turnContext => {
await turnContext.sendActivity(newMessage);
});
newMessage
是 Activity
对象,它为用户包含有关 API 调用结果的更多信息。
问题是 newMessage
没有显示为对现有消息的回复,而是显示为单独的消息,尽管 newMessage.replyToId
设置为 this.replyToId
:
其他信息:对话框的最后一条和“回复”这两条消息都是自适应卡片,但如果我只发送简单的文本,同样的行为,这并没有什么不同。
如有任何帮助,将不胜感激:)
不要使用“replyToId”,而是将您要回复的消息的 ID 放在对话参考的末尾。例如,如果您的 conversationReference 的 conversationId 为 19:ac....cf@thread.skype
,请将其更改为:19:ac...cf@thread.skype;messageid=12345678
,其中 12345678
是您当前使用的“replyToId”
我将 Microsoft bot sdk 与 restify 服务器结合使用(在 package.json
中: "botbuilder": "^4.11.0"
)。我启动了一个瀑布对话框,它触发了一个很长的 运行 API。我保存对话引用和已发送消息的 ID,以便在 API 调用完成后创建回复:
replyToId = (await stepContext.context.sendActivity({ attachments: [ac]})).id;
(在对话框中)
this.conversationReference = TurnContext.getConversationReference(context.activity);
(在bot.ts
)
完成 API 调用后,我想创建对对话框最后一条消息的回复:
await this.adapter.continueConversation(this.conversationReference, async turnContext => {
await turnContext.sendActivity(newMessage);
});
newMessage
是 Activity
对象,它为用户包含有关 API 调用结果的更多信息。
问题是 newMessage
没有显示为对现有消息的回复,而是显示为单独的消息,尽管 newMessage.replyToId
设置为 this.replyToId
:
其他信息:对话框的最后一条和“回复”这两条消息都是自适应卡片,但如果我只发送简单的文本,同样的行为,这并没有什么不同。
如有任何帮助,将不胜感激:)
不要使用“replyToId”,而是将您要回复的消息的 ID 放在对话参考的末尾。例如,如果您的 conversationReference 的 conversationId 为 19:ac....cf@thread.skype
,请将其更改为:19:ac...cf@thread.skype;messageid=12345678
,其中 12345678
是您当前使用的“replyToId”