javascript - 有没有办法在 Bot Framework Emulator 中提及我的机器人?
问题描述
我已经知道我的机器人的名字:“Bot”。
出于调试目的,我决定使用该eval()
函数从名为“onMessage.js”的文件onMessage
中为我的 ActivityHandler 中的函数读取代码:
const {TurnContext} = require('botbuilder');
var mentions = TurnContext.getMentions(context.activity);
console.log(`${mentions.length} mention(s) found:`);
for (var i = 0; i < mentions.length; i++) {
console.log(mentions[i].mentioned);
}
这样我就不必在每次更改代码时都等待并重新启动 Restify。
在 eval 之后,await next();
被调用。
至于每当我尝试向我的机器人发送消息“Hello @Bot!”时,我都没有提及:
0 mention(s) found:
模拟器不支持提及吗?是否有一个特殊的技巧来格式化我的消息,以便它的某个部分成为提及?我知道在 Discord 中我需要做的就是让@
符号后跟用户名来创建提及。
解决方案
模拟器不支持/实现@mentions。提及只是短信活动的一部分。每个频道(MS Teams、Slack、模拟器等)以不同方式处理它们,文本的格式在这方面很重要。例如,在这里您可以看到 MS Teams 需要<at> </at>
围绕要提及的文本。
如果 Discord 是您的最终目标,我认为您需要更多地研究它是如何实现提及的,然后让您的机器人以正确的方式对其进行格式化。您还可以连接调试机器人,然后通过 Ngrok 进行调试。我的假设是你只需要得到正确的提及格式。
推荐阅读
- java - 如何为我打印的每个“行”创建一个列表或数组列表
- java - Java parsefloat 在每个 CPU 上的结果相同
- javascript - 在 React Native 中垂直对齐文本
- r - 在 Linux EC2 上安装钠包时出错 - 无法加载共享对象
- java - 如何在本地目录中将 HttpResponse 保存为 PDF 文件
- iot - 无法在物联网平台中建立云基础应用程序和云基础服务之间的连接
- java - 如何从 Java 的 for 循环中知道哪个元素异常?
- wordpress - 构建自定义 Elementor Widget-Wordpress
- javascript - @azure/storage-blob 中的 TokenCredential 中的令牌是什么,如何获取?
- azure - Azure 模板 - 根据所选资源组动态生成参数值