如何更改Bot / Skype通道收到的消息文本格式

机器人仿真程序工作正常的明文响应,但是当我尝试通过Skype做同样的机器人响应;

我不明白,请再试一次

我发现Skype自动格式化电子邮件,将其封装在XMM格式的标签中,我有点被卡住了。 我认为将传入的文本格式更改为纯文本可以解决这个问题。

我发现这在Github上类似的问题,但这是在C#上,我使用Node.JS.

如何将bot / skype频道的默认文本格式更改为纯文本而不是降价,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(); } }; 

为了解决这种情况,您需要validation您是否有HTML包裹的电子邮件地址,然后从string中提取电子邮件部分,然后将其保存到session.dialogData

例如replace第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.'); } 

你可以像在C#一样调用Message的textFormat方法

接受的价值是:

export var TextFormat = { plain: 'plain', markdown: 'markdown', xml: 'xml' };