はじめに
slackのEvent APIを使用して、Lambda(Node.js)で処理する際に絵文字が文字列に変換されてしまいました。
こんにちは😎
→ こんにちは:sunglasses:
再度、文字列を絵文字に変換する必要があります。幸いNode.jsにはnode-emoji
というライブラリがあり、簡単に変換できたので使い方の紹介です。
※GitHubのREADME.meがとても分かりやすいです。
公式GitHub:https://github.com/omnidan/node-emoji
使い方
npm install --save node-emoji
でインストールする
const emoji = require('node-emoji');
// 文字列→絵文字に変換
console.log(emoji.get('sunglasses')); // 😎
// 絵文字→文字列に変換
console.log(emoji.which('😎')); // sunglasses
// 全ての絵文字文字列を絵文字に変換
console.log(emoji.emojify('I :heart: :coffee:!')); // I ❤️ 😎!
// ランダムな絵文字を作成
console.log(emoji.random()); //{ key: 'spoon', emoji: '🥄' }
// 検索にヒットする絵文字を取得
console.log(emoji.search('cof')); //[ { key: 'coffee', emoji: '☕' },{ key: 'coffin', emoji: '⚰️' } ]
// 全ての絵文字を絵文字文字列に変換
console.log(emoji.unemojify('I ❤️ 🍕')); // I :heart: :pizza:
// 絵文字から検索
console.log(emoji.find('🍕')); // { emoji: '🍕', key: 'pizza' }
// 文字列から検索
console.log(emoji.find('pizza')); // { emoji: '🍕', key: 'pizza' }
// 絵文字が存在するかの確認
console.log(emoji.hasEmoji('🍕')); // true
// 絵文字を削除
console.log(emoji.strip('⚠️🍕low 🍕disk space')); // low disk space
// 絵文字を置換する
console.log(emoji.replace('⚠️🍕low 🍕disk space', (emoji) => `${emoji.key}:`)); // warning:pizza:low pizza:disk space