2017-02-07 4 views
1

Ich entwickle einen Bot mit dem Bot-Framework. Beim Empfang einer Nachricht muss ich Emojis erkennen, die in der eingehenden Nachricht gesendet wurden.Erkenne Emoji in Bot Framework

Ich dachte daran, eine Regex zu verwenden, aber das kann ich nicht. Das Problem ist, dass verschiedene Kanäle den Emoji anders als der Bot senden. Ich habe einen Zuhörer auf die ‚empfangen‘ Ereignis registriert und warf einen Blick auf den Text für verschiedene Kanäle vorgesehen, um das gleiche Lächeln Emojis zu senden:

  • Slack: :smile:
  • Skype: <ss type="smile">:)<ss>
  • Emulator:

Ich muss identifizieren, welche Emoji ich erhalte und accordingly handle. Idealerweise möchte ich den Unicode-Charakter für das Emoji erhalten, egal welchen Kanal ich verwende. Gibt es eine Möglichkeit, dies zu tun?

+0

Sie können die Emoji-Unicode-Codepunkte von http://apps.timwhitlock.info/emoji/tables/unicode abrufen – stuartd

Antwort

1

Ich denke, Sie können die Benutzerantwort mit Middleware überprüfen und dann konvertieren (basierend auf dem Kanal Ihre Nachricht gesendet wurde) zu jedem universellen Emoji.

In Ihrem Beispiel:

  • Slack:: smile:
  • Skype: :) ​​
  • Emulator:

Ihr Ergebnis ein sein kann: ":)". Es kann sehr komplex sein, alle Emojis von allen unterstützten Kanälen abzudecken.

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

Beachten Sie, dass dies für alle Nachrichten gilt, die der Benutzer an Bot sendet.