首页 > 解决方案 > 有没有办法在 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 中我需要做的就是让@符号后跟用户名来创建提及。

标签: javascriptbotframework

解决方案


模拟器不支持/实现@mentions。提及只是短信活动的一部分。每个频道(MS Teams、Slack、模拟器等)以不同方式处理它们,文本的格式在这方面很重要。例如,在这里您可以看到 MS Teams 需要<at> </at>围绕要提及的文本。

如果 Discord 是您的最终目标,我认为您需要更多地研究它是如何实现提及的,然后让您的机器人以正确的方式对其进行格式化。您还可以连接调试机器人,然后通过 Ngrok 进行调试。我的假设是你只需要得到正确的提及格式。


推荐阅读