botframework - 从中间件的传入部分发送的 context.sendActivity 没有通过 onSendActivities 函数
问题描述
在中间件中,我正在向用户发送一些消息以检查某些条件......
然而,这些并没有通过中间件的 onSendActivities 部分......(有或没有短路......)即一直调用 next() 并且有时跳过调用 next() ......
这是一个错误吗?或有意内置.. 至少期望从中间件功能的传入部分发送的所有消息都通过此功能。
async onTurn( (context, next) => {
//....
await context.sendActivity(`whatever`)
this.Bot.adapter.continueConversation(userRef, async turnContext => {
// the below one does not show up in console
await turnContext.sendActivity(`Another message to user`);
})
await context.onSendActivities( (sendContext, activities, sendNext) => {
// expected both above sent to hit here...
console.log(`activities : ${activities.map(a => a.text).join(',')}`)
await sendNext()
})
await next()
})
解决方案
您需要循环通过方法中的activities
对象onSendActivities()
来记录活动。如果您希望对特定活动采取行动,那么您可以解析每个活动以查找您需要匹配的任何标志或值,然后执行您的操作。
await context.sendActivity(`whatever`);
await context.onSendActivities(async (sendContext, activities, sendNext) => {
for (let activity of activities) {
console.log('SEND ACTIVITY ', activity);
}
return await sendNext();
});
希望有帮助!
推荐阅读
- python - 导入 cv2 时 DLL 加载失败 没有足够的内存资源来处理此命令
- javascript - 如何获取上传图片的图片名称和大小
- javascript - 将动态参数传递给在 for 循环中使用 chrome.tabs.executeScript() 注入的内容脚本,并将参数值写入控制台
- huawei-mobile-services - AppGallery Connect服务集成时提示“miss client id”怎么办?
- unity3d - 统一的更新订单执行是否不变?
- javascript - 我想知道为什么我们使用第一个道具?.heading 和 in
import React from "react"; import Field from "sleek-ui/Field"; import {InputStyle, Heading, SubHeading, DisplayHeading} from "./style"; con
- php - 根据 Codeigniter 中的参与者数量获取价格值
- visual-studio - 如何通过自定义命令控制 Visual Studio 的扩展?
- python - infomap算法python中社区的颜色
- wordpress - 在 wordpress 中编辑 wp_options 表