Bot模拟器在明文响应中工作正常,但当我尝试通过Skype做同样的机器人响应;
我不明白,请再试一次
我发现Skype通过将其封装在<a />
标签 - XMM格式中来自动格式化电子邮件,我有点卡住应该做的事情。我认为将传入的文本格式更改为纯文本将解决此问题。
我发现这类似于similar issue on Github,但这是在C#上,我使用的是Node.JS。
如何将bot / skype频道的默认文本格式更改为纯文本而不是markdown,以便不会发生Skype自动格式化?
根据@ezequiel-jadib更新了,但仍然没有运气。也许我做错了?
// bot.js
bot.use(...[logger]);
// logger.js
module.exports = exports = {
receive: (e, next) => {
e.textFormat('plain');
logConversation(e);
next();
},
send: (e, next) => {
logConversation(e);
next();
}
};
答案 0 :(得分:0)
要解决这种情况,您需要验证是否有HTML包装的电子邮件地址,然后从字符串中提取电子邮件部分,然后再将其保存到session.dialogData
。
例如,替换line 40:
const usernameOrEmail = session.dialogData.usernameOrEmail = results.response;
使用:
// where results.response is in the format '<a href="hello@world.com">hello@world.com</a>'
var exampleEmailWrappedInHtml = results.response;
// validate if we have email wrapped in HTML from Skype
if(exampleEmailWrappedInHtml.match(/<a href="mailto:/i)) {
console.log('HTML wrapped email detected!');
const usernameOrEmail = session.dialogData.usernameOrEmail = exampleEmailWrappedInHtml.split('>')[1].split('<')[0];
} else {
console.log('no match.');
}
答案 1 :(得分:0)
您可以在[{1}}
中调用Message
的{{3}}方法
接受的值是:
C#