如何更改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' };