2017-02-07 3 views
1

봇 프레임 워크로 봇을 개발 중입니다. 메시지를받을 때 들어오는 메시지에서 보낸 이모티콘을 탐지해야합니다.봇 프레임 워크에서 이모티콘 감지

나는 이것을하기 위해 정규식을 사용할 생각 이었지만 할 수 없었다. 문제는 다른 채널이 이모티콘을 봇에 다르게 보냅니다. 나는 '수신'이벤트에 리스너를 등록하고 같은 미소 이모티콘 전송 다른 채널에 제공되는 텍스트를 살펴했다있다 :

  • 슬랙 : :smile:
  • 스카이프 : <ss type="smile">:)<ss>
  • 에뮬레이터 :

내가받는 이모티콘을 식별하고 공격적으로 행동해야합니다. 내가 가장 이상적으로 원하는 것은 내가 사용하고있는 채널에 상관없이 이모티콘의 유니 코드 문자를받는 것입니다. 이 일을하는 방법이 있습니까?

+0

http://apps.timwhitlock.info/emoji/tables/unicode에서 이모티콘 유니 코드 코드 포인트를 얻을 수 있습니다. – stuartd

답변

1

미들웨어로 사용자의 응답을 검사 한 다음 메시지가 전송 된 채널을 기반으로 모든 일반 이모티콘으로 변환 할 수 있다고 생각합니다. 샘플에서

:

  • 여유 : : 미소 :
  • 스카이프 : :)
  • 에뮬레이터 :

귀하의 결과가 될 수있다 ":)". 지원되는 모든 채널에서 모든 이모티콘을 포괄하는 것은 매우 복잡 할 수 있습니다.

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(); 
    } 
}); 

사용자가 bot에게 보낸 모든 메시지에 적용됩니다.

관련 문제