もう腐るほどやり方はネットに落ちている、Slack Emojiのexport&importネタです。
例えば新しいSlack Workspaceを作成したときなどに、その他に参加しているSlack Workspaceに登録されているEmojiを、そこでも使いたいときなどに便利です。
Slack Emojiをまとめてexportする
シンプルなスクリプトなので、Node.jsのバージョンなどの環境まわりの話は省略します。
Nodeのプロジェクトを作成する
適当なディレクトリを作成して、その中で npm init
します。
# プロジェクトのルートディレクトリを作成する
$ mkdir SlackEmojiExporter
# プロジェクトのルートディレクトリに移動する
$ cd SlackEmojiExporter
# Nodeのプロジェクトを作成する
$ npm init
npmモジュールのインストール
以下の3つのモジュールをインストールします。
$ npm install --save slack-node
$ npm install --save request
$ npm install --save fs
APITokenを生成する
以下のリンク先でEmojiをexportしたいSlack WorkspaceのAPITokenを作成します。
スクリプトを書く
たとえば slack-emoji-exporter.js
というファイルを作ります。
const Slack = require('slack-node');
const request = require('request');
const fs = require('fs');
apiToken = "<APIToken>"; // <- ここに生成したAPITokenを入力する
slack = new Slack(apiToken);
slack.api("emoji.list", function (err, response) {
for(key in response.emoji){
url = response.emoji[key];
//エイリアスは無視
if(url.match(/alias/)){
continue;
}
request
.get(url)
.on('response', function (res) {
})
.pipe(fs.createWriteStream(key + '.png'));
}
});
スクリプトを実行してEmojiを保存する
たとえば今のプロジェクトルートで先ほど書いたスクリプトを実行すると、直接画像ファイルが流れてきてしまうので、 images
ディレクトリを作成してその中でスクリプトを実行します。
$ mkdir images
- node_modules
- package-lock.json
- package.json
- slack-emoji-exporter.js
- images
$ cd images
$ node ../slack-emoji-exporter.js
すると、以下のように画像ファイルがダウンロードされるでしょう。
これでEmojiをまとめてexportできました。
Slack Emojiをまとめてimportする
Chrome Extensionをインストールする
以下のChrome Extensionをインストールすると、SlackのEmoji追加するところにUIが追加され、ドラッグ&ドロップで画像をまとめてimportできるようになります。
Neutral Face Emoji Tools - Chrome ウェブストア
Emojiをまとめてimportする
以下の画像の手順で Customize Slack
を開きます。
するとEmojiを追加するウェブが開くので、そこのBulk Emoji Uploaderにドラッグ&ドロップで画像ファイルをまとめて複数登録することができます。