检测Bot框架中的表情符号

我正在开发Bot框架。 当收到消息时,我需要检测传入消息中发送的表情符号。

我正在考虑使用正则expression式来做到这一点,但我不能。 问题是不同的渠道发送不同的表情符号到机器人。 我已经注册了一个“接收”事件的听众,并看看为不同的频道提供的文本发送相同的笑脸表情符号:

  • 松弛:smile:
  • Skype: <ss type="smile">:)<ss>
  • 模拟器: 😀

我需要确定我正在接受哪种表情符号,并采取行动。 无论我使用的是什么频道,理想情况下我都会收到表情符的Unicode字符。 有没有办法做到这一点?

我想你可以用中间件检查用户的响应,然后根据你的消息发送的频道转换为任何通用的表情符号。

在你的示例中:

  • 松弛:微笑:
  • Skype::)
  • 模拟器:😀

你的结果可能是:“:)”。 涵盖所有支持的频道的所有表情可能非常复杂。

 var bot = new builder.UniversalBot(connector, [ function (session) { builder.Prompts.text(session, 'Please send an emoji...'); }, function (session, result) { console.log(result.response); } ]); const convertEmoji = (event) => { if (event.source === "skype") { if (/laugh/g.test(event.text)) { event.text = ':D'; } } }; bot.use({ receive: function (event, next) { convertEmoji(event); next(); } }); 

考虑到这将适用于用户发送到机器人的所有消息。